浏览代码

Use global method to get version code

Bartosz Przybylski 9 年之前
父节点
当前提交
d837958e5c

+ 12 - 0
src/com/owncloud/android/MainApp.java

@@ -33,6 +33,7 @@ import android.os.Bundle;
 import android.os.Environment;
 import android.os.IBinder;
 import android.preference.PreferenceManager;
+import android.util.Log;
 
 import com.owncloud.android.authentication.PassCodeManager;
 import com.owncloud.android.datamodel.ThumbnailsCacheManager;
@@ -176,6 +177,17 @@ public class MainApp extends Application {
         return getAppContext().getResources().getString(R.string.account_type);
     }
 
+    // Non gradle build systems do not provide BuildConfig.VERSION_CODE
+    // so we must fallback to this method :(
+    public static int getVersionCode() {
+        try {
+            String thisPackageName = getAppContext().getPackageName();
+            return getAppContext().getPackageManager().getPackageInfo(thisPackageName, 0).versionCode;
+        } catch (PackageManager.NameNotFoundException e) {
+            return 0;
+        }
+    }
+
     //  From AccountAuthenticator 
     //  public static final String AUTHORITY = "org.owncloud";
     public static String getAuthority() {

+ 5 - 4
src/com/owncloud/android/features/FeatureList.java

@@ -22,6 +22,7 @@
 package com.owncloud.android.features;
 
 import com.owncloud.android.BuildConfig;
+import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.lib.common.utils.Log_OC;
 
@@ -43,8 +44,8 @@ public class FeatureList {
 			new FeatureItem(R.drawable.logo, R.string.welcome_feature_2_title,  R.string.welcome_feature_2_text, "1.0.0", SHOW_ON_FIRST_RUN),
 			new FeatureItem(R.drawable.logo, R.string.welcome_feature_3_title,  R.string.welcome_feature_3_text, "1.0.0", SHOW_ON_FIRST_RUN),
 			new FeatureItem(R.drawable.logo, R.string.welcome_feature_4_title,  R.string.welcome_feature_4_text, "1.0.0", SHOW_ON_FIRST_RUN),
-			new FeatureItem(R.drawable.logo, R.string.welcome_feature_5_title,  FeatureItem.DO_NOT_SHOW, "1.0.0", SHOW_ON_FIRST_RUN),
-	};
+			new FeatureItem(R.drawable.logo, R.string.welcome_feature_5_title,  FeatureItem.DO_NOT_SHOW, "1.0.0", SHOW_ON_FIRST_RUN)
+    };
 
 
 	static public FeatureItem[] get() {
@@ -52,13 +53,13 @@ public class FeatureList {
 	}
 
 	static public FeatureItem[] getFiltered(final int lastSeenVersionCode, final boolean isFirstRun) {
-		List<FeatureItem> features = new LinkedList<FeatureItem>();
+		List<FeatureItem> features = new LinkedList<>();
 
 		for (FeatureItem item : get()) {
 			if (isFirstRun && item.shouldShowOnFirstRun()) {
 				features.add(item);
 			} else if (!isFirstRun && !item.shouldShowOnFirstRun() &&
-					BuildConfig.VERSION_CODE >= item.getVersionNumber() &&
+					MainApp.getVersionCode() >= item.getVersionNumber() &&
 					lastSeenVersionCode < item.getVersionNumber()) {
 				features.add(item);
 			}

+ 1 - 2
src/com/owncloud/android/ui/activity/WhatsNewActivity.java

@@ -39,7 +39,6 @@ import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
-import com.owncloud.android.BuildConfig;
 import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.authentication.AccountUtils;
@@ -178,7 +177,7 @@ public class WhatsNewActivity extends Activity {
     private void onFinish() {
         SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
         SharedPreferences.Editor editor = pref.edit();
-        editor.putInt(KEY_LAST_SEEN_VERSION_CODE, BuildConfig.VERSION_CODE);
+        editor.putInt(KEY_LAST_SEEN_VERSION_CODE, MainApp.getVersionCode());
         editor.apply();
     }