Skip to content

Commit

Permalink
Update to support v29, add dialogs, use karumi for permissions writin…
Browse files Browse the repository at this point in the history
…g data to storage, display of linked ref field data in lists, optimise using aDoctor, larger thumbnails, adjust interface, add translations for added info display.
  • Loading branch information
vginkeo committed Jul 13, 2020
1 parent 61f11b7 commit 8e04f5c
Show file tree
Hide file tree
Showing 20 changed files with 573 additions and 200 deletions.
104 changes: 48 additions & 56 deletions app/app.iml
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id=":app" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" type="JAVA_MODULE" version="4">
<module external.linked.project.id=":app" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="UbForms" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="android-gradle" name="Android-Gradle">
<configuration>
<option name="GRADLE_PROJECT_PATH" value=":app" />
<option name="LAST_SUCCESSFUL_SYNC_AGP_VERSION" value="2.3.3" />
<option name="LAST_KNOWN_AGP_VERSION" value="2.3.3" />
</configuration>
</facet>
<facet type="android" name="Android">
Expand All @@ -17,30 +19,29 @@
<option name="ALLOW_USER_CONFIGURATION" value="false" />
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
<option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
<option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
<option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res;file://$MODULE_DIR$/src/debug/res;file://$MODULE_DIR$/build/generated/res/rs/debug;file://$MODULE_DIR$/build/generated/res/resValues/debug" />
<option name="TEST_RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/androidTest/res;file://$MODULE_DIR$/src/test/res;file://$MODULE_DIR$/src/testDebug/res;file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug;file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" />
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
<output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
<output-test url="file://$MODULE_DIR$/build/intermediates/classes/test/debug" />
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
Expand All @@ -62,62 +63,53 @@
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-safeguard" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
<excludeFolder url="file://$MODULE_DIR$/build/reports" />
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build" />
</content>
<orderEntry type="jdk" jdkName="Android API 27 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" scope="TEST" name="espresso-core-2.2.2" level="project" />
<orderEntry type="library" exported="" name="appcompat-v7-27.0.1" level="project" />
<orderEntry type="library" exported="" name="support-vector-drawable-27.0.1" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="runner-0.5" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="exposed-instrumentation-api-publish-0.5" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="espresso-idling-resource-2.2.2" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="rules-0.5" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="hamcrest-library-1.3" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="javax.annotation-api-1.2" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="javax.inject-1" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="hamcrest-integration-1.3" level="project" />
<orderEntry type="library" exported="" name="runtime-1.0.0" level="project" />
<orderEntry type="library" exported="" name="support-core-utils-27.0.1" level="project" />
<orderEntry type="library" exported="" name="support-core-ui-27.0.1" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="javawriter-2.1.1" level="project" />
<orderEntry type="library" exported="" name="common-1.0.0" level="project" />
<orderEntry type="library" exported="" name="1_common-1.0.0" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="hamcrest-core-1.3" level="project" />
<orderEntry type="library" exported="" name="support-compat-27.0.1" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="junit-4.12" level="project" />
<orderEntry type="library" exported="" name="support-fragment-27.0.1" level="project" />
<orderEntry type="library" exported="" name="animated-vector-drawable-27.0.1" level="project" />
<orderEntry type="library" exported="" name="support-annotations-27.0.1" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="jsr305-2.0.1" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="Gradle: com.squareup:javawriter:2.1.1@jar" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="Gradle: junit:junit:4.12@jar" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="Gradle: org.hamcrest:hamcrest-core:1.3@jar" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="Gradle: javax.inject:javax.inject:1@jar" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="Gradle: org.hamcrest:hamcrest-library:1.3@jar" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="Gradle: org.hamcrest:hamcrest-integration:1.3@jar" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="Gradle: com.google.code.findbugs:jsr305:2.0.1@jar" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="Gradle: javax.annotation:javax.annotation-api:1.2@jar" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-core:2.2.2@aar" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="Gradle: com.android.support.test:rules:0.5@aar" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="Gradle: com.android.support.test:runner:0.5@aar" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="Gradle: com.android.support.test:exposed-instrumentation-api-publish:0.5@aar" level="project" />
<orderEntry type="library" exported="" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-idling-resource:2.2.2@aar" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.android.support:support-annotations:27.0.1@jar" level="project" />
<orderEntry type="library" exported="" name="Gradle: android.arch.lifecycle:common:1.0.0@jar" level="project" />
<orderEntry type="library" exported="" name="Gradle: android.arch.core:common:1.0.0@jar" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.android.support:appcompat-v7:27.0.1@aar" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.android.support:support-core-utils:27.0.1@aar" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.android.support:support-compat:27.0.1@aar" level="project" />
<orderEntry type="library" exported="" name="Gradle: android.arch.lifecycle:runtime:1.0.0@aar" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.android.support:support-fragment:27.0.1@aar" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.android.support:support-core-ui:27.0.1@aar" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.android.support:support-vector-drawable:27.0.1@aar" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.android.support:animated-vector-drawable:27.0.1@aar" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.karumi:dexter:4.2.0@aar" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.android.support:design:25.3.1@aar" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.android.support:support-v4:25.3.1@aar" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.android.support:support-media-compat:25.3.1@aar" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.android.support:recyclerview-v7:25.3.1@aar" level="project" />
<orderEntry type="library" exported="" name="Gradle: com.android.support:transition:25.3.1@aar" level="project" />
</component>
</module>
7 changes: 4 additions & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ android {
defaultConfig {
applicationId "org.iphukan.ubforms"
minSdkVersion 16
targetSdkVersion 27
versionCode 17
versionName "1.17"
targetSdkVersion 29
versionCode 19
versionName "1.19"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
Expand All @@ -27,4 +27,5 @@ dependencies {
compile 'com.android.support:appcompat-v7:27.0.1'
//compile 'com.android.support:appcompat-v7:27.+'
testCompile 'junit:junit:4.12'
compile 'com.karumi:dexter:4.2.0'
}
6 changes: 3 additions & 3 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="org.iphukan.ubforms"
android:versionCode="17"
android:versionName="1.17">
android:versionCode="19"
android:versionName="1.19">

<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="27" android:maxSdkVersion="27" />
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="29" android:maxSdkVersion="29" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package org.iphukan.ubforms;

import org.iphukan.ubforms.data.Attribute;
import org.iphukan.ubforms.data.AttributeDao;
import org.iphukan.ubforms.data.Entity;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
Expand All @@ -15,6 +15,10 @@
import android.widget.Spinner;
import android.widget.TextView;

import org.iphukan.ubforms.data.Attribute;
import org.iphukan.ubforms.data.AttributeDao;
import org.iphukan.ubforms.data.Entity;

public class AttributeDetailsActivity extends BaseActivity {

private Attribute currentAttribute = null;
Expand All @@ -38,7 +42,7 @@ public void onCreate(Bundle savedInstanceState) {

LinearLayout fieldDetails = new LinearLayout(this);
fieldDetails.setOrientation(LinearLayout.VERTICAL);
fieldDetails.setMinimumWidth(COL_MIN_WIDTH);
//fieldDetails.setMinimumWidth(COL_MIN_WIDTH);
setContentView(fieldDetails);

Button btnSave = new Button(this);
Expand Down Expand Up @@ -118,6 +122,33 @@ public void onClick(View view) {
fieldDetails.addView(tvExample);
etValidationExample = new EditText(this);
fieldDetails.addView(etValidationExample);

Button btnDel = new Button(this);
btnDel.setText(R.string.del_field_def);
btnDel.setTextSize(TEXT_SIZE_LARGE);
btnDel.setBackgroundColor(Color.parseColor("#A00000"));
final Context context = this;
btnDel.setOnClickListener(new OnClickListener(){
public void onClick(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage(getString(R.string.are_sure_delete_item))
.setCancelable(false)
.setPositiveButton(getString(R.string.yes), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
delField();
}
})
.setNegativeButton(getString(R.string.no), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
});

fieldDetails.addView(btnDel);

Bundle bundle = getIntent().getExtras();

Expand Down Expand Up @@ -153,6 +184,31 @@ private void saveFieldDetails() {
sqlHelper.close();
}
}

private void delField() {
if (currentAttribute == null) return;
/*currentAttribute.setAttributeName(etFieldName.getText().toString());
currentAttribute.setAttributeDesc(etFieldDescription.getText().toString());
int position = spDatatype.getSelectedItemPosition();
currentAttribute.setDataType(Attribute.DATA_TYPES[position]);
currentAttribute.setRefEntityName(etRefType.getText().toString());
currentAttribute.setPrimaryKeyPart(cbKey.isChecked());
currentAttribute.setRequired(cbRequired.isChecked());
currentAttribute.setSearchable(cbSearchable.isChecked());
currentAttribute.setListable(cbListable.isChecked());
currentAttribute.setEntityDescription(cbEntityDescription.isChecked());
currentAttribute.setChoices(etChoices.getText().toString());
currentAttribute.setValidationRegex(etValidationRegex.getText().toString());
currentAttribute.setValidationExample(etValidationExample.getText().toString());
*/
try {
new AttributeDao(sqlHelper.getWritableDatabase()).delete(currentAttribute);
makeToast(getString(R.string.deleted));
finish();
} finally {
sqlHelper.close();
}
}

private void readFieldDetails(Attribute attribute) {
etFieldDescription.setText(attribute.getAttributeDesc());
Expand Down
Loading

0 comments on commit 8e04f5c

Please sign in to comment.