Skip to content

Commit

Permalink
WIP to add the page direct upload file
Browse files Browse the repository at this point in the history
  • Loading branch information
eldy committed Oct 15, 2024
1 parent 1c26837 commit a12a71a
Show file tree
Hide file tree
Showing 4 changed files with 115 additions and 24 deletions.
105 changes: 93 additions & 12 deletions app/src/main/java/com/nltechno/dolidroidpro/SecondActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,9 @@ public class SecondActivity extends Activity {
private static final String LOG_TAG = "DoliDroidSecondActivity";
public static final String VERSION_RESOURCES = "14.0";

private WebView myWebView;
boolean isInstalledFromPlayStore = true;

private WebView myWebView;
WebViewClientDoliDroid myWebViewClientDoliDroid;
WebChromeClientDoliDroid myWebChromeClientDoliDroid;
WebBackForwardList mWebBackForwardList;
Expand Down Expand Up @@ -165,12 +167,14 @@ public class SecondActivity extends Activity {
private String cacheForMenu;
private String cacheForQuickAccess;
private String cacheForBookmarks;
private String cacheForUploadFile;
private String cacheForMultiCompany;
private String cacheForVirtualCard;

private String lastLoadUrl;
private boolean isBookmarkOn=true;
private boolean isMulticompanyOn=false; // Not visible by default
private boolean isUploadFileOn=false; // Not visible by default
private boolean isUserCardOn=false; // Not visible by default
private boolean isVirtualCardOn=false; // Not visible by default

Expand Down Expand Up @@ -224,10 +228,20 @@ public class SecondActivity extends Activity {
public void onCreate(Bundle savedInstanceState)
{
Log.i(LOG_TAG, "onCreate savedInstanceState="+savedInstanceState);

super.onCreate(savedInstanceState);
// To have the view SecondActivity with WebView included:
setContentView(R.layout.activity_second);

PackageManager packageManager = this.getPackageManager();
String installerPackageName = packageManager.getInstallerPackageName(this.getPackageName());
if ("com.android.vending".equals(installerPackageName)) {
isInstalledFromPlayStore = true;
} else {
isInstalledFromPlayStore = false;
}
Log.d(LOG_TAG, "onCreate App is installed from: "+installerPackageName);

// Read the non encrypted share preferences files
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
boolean prefAlwaysShowBar = sharedPrefs.getBoolean("prefAlwaysShowBar", true);
Expand Down Expand Up @@ -451,31 +465,34 @@ public boolean onCreateOptionsMenu(Menu menu)
menu.findItem(R.id.menu_menu).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
menu.findItem(R.id.menu_search).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
menu.findItem(R.id.menu_bookmarks).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
menu.findItem(R.id.menu_uploadfile).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
menu.findItem(R.id.menu_back).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);

menu.findItem(R.id.menu_photo).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); // Not enough room so we force it on dropdown menu.
menu.findItem(R.id.menu_scan).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); // Not enough room so we force it on dropdown menu.
//menu.findItem(R.id.menu_photo).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); // Not enough room so we force it on dropdown menu.
//menu.findItem(R.id.menu_scan).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); // Not enough room so we force it on dropdown menu.
menu.findItem(R.id.menu_multicompany).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); // Not enough room so we force it on dropdown menu.
menu.findItem(R.id.menu_usercard).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); // Not enough room so we force it on dropdown menu.
menu.findItem(R.id.menu_virtualcard).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); // Not enough room so we force it on dropdown menu.
menu.findItem(R.id.menu_multicompany).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); // Not enough room so we force it on dropdown menu.

menu.findItem(R.id.menu_photo).setVisible(false);
menu.findItem(R.id.menu_scan).setVisible(false);
//menu.findItem(R.id.menu_photo).setVisible(false);
//menu.findItem(R.id.menu_scan).setVisible(false);
menu.findItem(R.id.menu_multicompany).setVisible(false);
menu.findItem(R.id.menu_usercard).setVisible(false);
menu.findItem(R.id.menu_virtualcard).setVisible(false);
menu.findItem(R.id.menu_multicompany).setVisible(false);
}
if (this.menuAre.equals("hardwareonly")) {
// Move entries from actionbar to list
menu.findItem(R.id.menu_menu).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
menu.findItem(R.id.menu_search).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
menu.findItem(R.id.menu_back).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
menu.findItem(R.id.menu_bookmarks).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
menu.findItem(R.id.menu_usercard).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
menu.findItem(R.id.menu_virtualcard).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
menu.findItem(R.id.menu_uploadfile).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
menu.findItem(R.id.menu_back).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);

menu.findItem(R.id.menu_multicompany).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
//menu.findItem(R.id.menu_photo).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
//menu.findItem(R.id.menu_scan).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
menu.findItem(R.id.menu_multicompany).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
menu.findItem(R.id.menu_usercard).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
menu.findItem(R.id.menu_virtualcard).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
}


Expand Down Expand Up @@ -542,6 +559,20 @@ public boolean onCreateOptionsMenu(Menu menu)
}
}

if (isUploadFileOn) {
Log.d(LOG_TAG, "onCreateOptionsMenu Upload file feature enabled, we show picto");
MenuItem menuItem6 = menu.findItem(R.id.menu_uploadfile);
if (menuItem6 != null) {
menuItem6.setVisible(true);
}
} else {
Log.d(LOG_TAG, "onCreateOptionsMenu Upload file feature is NOT enabled, we hide picto");
MenuItem menuItem6 = menu.findItem(R.id.menu_uploadfile);
if (menuItem6 != null) {
menuItem6.setVisible(false);
}
}

if (isUserCardOn) {
Log.d(LOG_TAG, "onCreateOptionsMenu version enough for user card, we show menu/picto");
MenuItem tmpmenu = menu.findItem(R.id.menu_usercard);
Expand Down Expand Up @@ -650,6 +681,8 @@ public boolean onOptionsItemSelected(MenuItem item)
return this.codeForBookmarks();
case R.id.menu_multicompany:
return this.codeForMultiCompany();
case R.id.menu_uploadfile:
return this.codeForUploadFile();
case R.id.menu_usercard:
return this.codeForUserCard();
case R.id.menu_virtualcard:
Expand Down Expand Up @@ -821,6 +854,7 @@ public boolean onOptionsItemSelected(MenuItem item)
this.cacheForMenu=null;
this.cacheForQuickAccess=null;
this.cacheForBookmarks=null;
this.cacheForUploadFile=null;
this.cacheForMultiCompany=null;
this.cacheForVirtualCard=null;

Expand Down Expand Up @@ -986,6 +1020,10 @@ protected void onPostExecute(String result)
stringforHistoryUrl = savedDolRootUrl+"core/bookmarks_page.php?dol_hide_topmenu=1&dol_hide_leftmenu=1&dol_optimize_smallscreen=1&dol_no_mouse_hover=1&dol_use_jmobile=1";
stringToCheckInResult = "<!-- Bookmarks -->";
}
if ("uploadfile".equals(this.mode)) { // Test that result is a bookmark page
stringforHistoryUrl = savedDolRootUrl+"core/upload_page.php?dol_hide_topmenu=1&dol_hide_leftmenu=1&dol_optimize_smallscreen=1&dol_no_mouse_hover=1&dol_use_jmobile=1";
stringToCheckInResult = "<!-- Upload file -->";
}
if ("multicompany".equals(this.mode)) { // Test that result is a multicompany selection page
stringforHistoryUrl = savedDolRootUrl+"core/multicompany_page.php?dol_hide_topmenu=1&dol_hide_leftmenu=1&dol_optimize_smallscreen=1&dol_no_mouse_hover=1&dol_use_jmobile=1";
stringToCheckInResult = "<!-- Multicompany selection -->";
Expand Down Expand Up @@ -1015,6 +1053,9 @@ protected void onPostExecute(String result)
if ("bookmarks".equals(this.mode)) { // Test that result is the quickaccess page
cacheForBookmarks = result;
}
if ("uploadfile".equals(this.mode)) { // Test that result is the quickaccess page
cacheForUploadFile = result;
}
if ("virtualcard".equals(this.mode)) { // Test that result is the quickaccess page
cacheForVirtualCard = result;
}
Expand Down Expand Up @@ -1140,7 +1181,28 @@ private boolean codeForQuickAccess()
}

/**
* Common code for Back
* Common code for UploadFile
* codeForUploadFile is in a UI thread
*
* @return boolean True
*/
private boolean codeForUploadFile() {
String urlToGo;
boolean allowCacheForUploadFilePage = false;

urlToGo = this.savedDolRootUrl+"core/upload_page.php?cache=600&dol_hide_topmenu=1&dol_hide_leftmenu=1&dol_optimize_smallscreen=1&dol_no_mouse_hover=1&dol_use_jmobile=1";

// If not found into cache, call URL
Log.d(LOG_TAG, "We called codeForUploadFile after click on Uploadfile : savedDolBasedUrl="+this.savedDolBasedUrl+" urlToGo="+urlToGo);

//myWebView = findViewById(R.id.webViewContent);
myWebView.loadUrl(urlToGo);

return true;
}

/**
* Common code for Bookmark
* codeForBookmarks is in a UI thread
*
* @return boolean True
Expand Down Expand Up @@ -1271,6 +1333,7 @@ private boolean codeForMultiCompany()
myWebView.clearHistory();
this.cacheForMenu = null;
this.cacheForQuickAccess = null;
this.cacheForUploadFile = null;
this.cacheForBookmarks = null;
this.cacheForMultiCompany = null;
//Log.d(LOG_TAG,"Clear also cookies");
Expand Down Expand Up @@ -2158,6 +2221,8 @@ else if (tagToShowMessage.length() > 0 && tagToShowCounter > 0) // tagToShowCoun
MenuItem menuItemBookmarks = savMenu.findItem(R.id.menu_bookmarks);
MenuItem menuItemUserCard = savMenu.findItem(R.id.menu_usercard);
MenuItem menuItemVirtualCard = savMenu.findItem(R.id.menu_virtualcard);
MenuItem menuItemUploadFile = savMenu.findItem(R.id.menu_uploadfile);

if (foundVersion) // if title ends with " Dolibarr x.y.z" or " Dolibarr x.y.z - multicompany or anytext from module hook setTitleHtml", this is login page or home page
{
lastversionfound = m.group(1) + ", " + m.group(2) + ", " + m.group(3);
Expand All @@ -2182,6 +2247,22 @@ else if (tagToShowMessage.length() > 0 && tagToShowCounter > 0) // tagToShowCoun
isMulticompanyOn = false;
}

// Enable or disable menu entry for Upload File (available from Dolibarr v21)
try {
if (m.group(1) != null && Integer.parseInt(m.group(1)) >= 21 && !isInstalledFromPlayStore) {
Log.d(LOG_TAG, "onPageFinished Version major found >= 21 and not installed from PlayStore , we enable the upload file entry");
menuItemUploadFile.setVisible(true);
isUploadFileOn = true;
} else {
Log.d(LOG_TAG, "onPageFinished Version major found < 21 or installed from PlayStore, we disable the upload file entry");
menuItemUploadFile.setVisible(false);
isUploadFileOn = false;
}
} catch (Exception e) {
Log.d(LOG_TAG, "onPageFinished Failed to parse version found = " + m.group(1));
menuItemUploadFile.setVisible(false);
}

// Enable or disable menu entry for Bookmarks (available from Dolibarr v15)
try {
if (m.group(1) != null && Integer.parseInt(m.group(1)) >= 15) {
Expand Down
32 changes: 20 additions & 12 deletions app/src/main/res/menu/activity_second.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,29 +20,37 @@
android:orderInCategory="22"
android:showAsAction="always"
android:title="@string/menu_bookmarks" />
<item
android:id="@+id/menu_back"
android:icon="@mipmap/ic_action_back"
android:orderInCategory="30"
android:showAsAction="always"
android:title="@string/menu_back" />

<item
android:id="@+id/menu_scan"
android:icon="@drawable/ic_baseline_star_border_24"
android:orderInCategory="40"
android:title="@string/menu_scan"
android:visible="false" />
<item
android:id="@+id/menu_photo"
android:icon="@android:drawable/ic_input_get"
android:orderInCategory="41"
android:title="@string/menu_photo"
android:visible="false" />
<item
android:id="@+id/menu_photo"
android:icon="@drawable/ic_baseline_star_border_24"
android:orderInCategory="41"
android:title="@string/menu_photo"
android:visible="false" />
android:id="@+id/menu_uploadfile"
android:icon="@android:drawable/ic_menu_upload"
android:orderInCategory="52"
android:title="@string/menu_uploadfile" />
<item
android:id="@+id/menu_back"
android:icon="@mipmap/ic_action_back"
android:orderInCategory="55"
android:showAsAction="always"
android:title="@string/menu_back" />

<item
android:id="@+id/menu_multicompany"
android:icon="@mipmap/ic_action_multicompany"
android:orderInCategory="50"
android:orderInCategory="58"
android:title="@string/menu_multicompany" />

<item
android:id="@+id/menu_usercard"
android:icon="@drawable/ic_baseline_badge_24"
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-fr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@
<string name="menu_logout">Déconnecter</string>
<string name="menu_quit">Quitter</string>
<string name="menu_multicompany">Changer de société</string>
<string name="menu_uploadfile">Importer/Scaner un document</string>
<string name="menu_usercard">Ma fiche utilisateur</string>
<string name="menu_virtualcard">Ma carte de visite virtuelle</string>
<string name="menu_scan">Scanner un code-barres</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@
<string name="menu_logout">Logout</string>
<string name="menu_quit">Quit</string>
<string name="menu_multicompany">Switch company</string>
<string name="menu_uploadfile">Import or scan a document</string>
<string name="menu_usercard">My user file</string>
<string name="menu_virtualcard">My virtual business card</string>
<string name="menu_scan">Scan a barcode</string>
Expand Down

0 comments on commit a12a71a

Please sign in to comment.