Skip to content

Commit 6aaf058

Browse files
authored
Merge branch 'main' into dependabot/gradle/app/commons-io-commons-io-2.18.0
2 parents 1110945 + 3d7ded6 commit 6aaf058

File tree

11 files changed

+124
-36
lines changed

11 files changed

+124
-36
lines changed

app/build.gradle

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@ apply plugin: 'org.ajoberstar.grgit'
33

44
android {
55
compileSdk 34
6+
namespace 'ai.elimu.content_provider'
67

78
defaultConfig {
89
applicationId "ai.elimu.content_provider"
910
minSdkVersion 24
1011
targetSdkVersion 34
11-
versionCode 1002027
12-
versionName "1.2.27-SNAPSHOT"
12+
versionCode 1002028
13+
versionName "1.2.28-SNAPSHOT"
1314
setProperty("archivesBaseName", "${applicationId}-${versionCode}")
1415
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1516
javaCompileOptions {
@@ -41,7 +42,7 @@ android {
4142
dependencies {
4243
implementation fileTree(dir: 'libs', include: ['*.jar'])
4344

44-
implementation 'com.github.elimu-ai:model:model-2.0.66' // See https://jitpack.io/#elimu-ai/model
45+
implementation 'com.github.elimu-ai:model:model-2.0.78' // See https://jitpack.io/#elimu-ai/model
4546

4647
implementation 'commons-io:commons-io:2.18.0'
4748
implementation 'com.google.android.material:material:1.5.0'

app/src/main/java/ai/elimu/content_provider/BaseApplication.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
import android.app.Application;
44
import android.util.Log;
55

6-
import ai.elimu.content_provider.language.SharedPreferencesHelper;
6+
import ai.elimu.content_provider.util.SharedPreferencesHelper;
7+
import ai.elimu.content_provider.util.VersionHelper;
78
import ai.elimu.model.v2.enums.Language;
89
import retrofit2.Retrofit;
910
import retrofit2.converter.gson.GsonConverterFactory;
@@ -14,6 +15,8 @@ public class BaseApplication extends Application {
1415
public void onCreate() {
1516
Log.i(getClass().getName(), "onCreate");
1617
super.onCreate();
18+
19+
VersionHelper.updateAppVersion(getApplicationContext());
1720
}
1821

1922
public Retrofit getRetrofit() {

app/src/main/java/ai/elimu/content_provider/MainActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import com.google.android.material.navigation.NavigationView;
1919

2020
import ai.elimu.content_provider.language.SelectLanguageActivity;
21-
import ai.elimu.content_provider.language.SharedPreferencesHelper;
21+
import ai.elimu.content_provider.util.SharedPreferencesHelper;
2222
import ai.elimu.model.v2.enums.Language;
2323

2424
public class MainActivity extends AppCompatActivity {

app/src/main/java/ai/elimu/content_provider/language/LanguageListDialogFragment.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package ai.elimu.content_provider.language;
22

3-
import android.content.Context;
43
import android.content.Intent;
5-
import android.content.SharedPreferences;
64
import android.os.Bundle;
75
import android.util.Log;
86
import android.view.LayoutInflater;
@@ -18,6 +16,7 @@
1816

1917
import ai.elimu.content_provider.MainActivity;
2018
import ai.elimu.content_provider.R;
19+
import ai.elimu.content_provider.util.SharedPreferencesHelper;
2120
import ai.elimu.model.v2.enums.Language;
2221

2322
/**
@@ -84,8 +83,7 @@ public void onBindViewHolder(ViewHolder holder, int position) {
8483
public void onClick(View v) {
8584
Log.i(getClass().getName(), "onClick");
8685
Log.i(getClass().getName(), "language: " + language);
87-
SharedPreferences sharedPreferences = getActivity().getSharedPreferences("shared_preferences", Context.MODE_PRIVATE);
88-
sharedPreferences.edit().putString("language", language.toString()).apply();
86+
SharedPreferencesHelper.storeLanguage(getContext(), language);
8987
Intent mainActivityIntent = new Intent(getContext(), MainActivity.class);
9088
startActivity(mainActivityIntent);
9189
getActivity().finish();

app/src/main/java/ai/elimu/content_provider/language/SharedPreferencesHelper.java

Lines changed: 0 additions & 20 deletions
This file was deleted.

app/src/main/java/ai/elimu/content_provider/ui/image/ImagesFragment.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,9 @@ public void run() {
147147
if (!imageFile.exists()) {
148148
// Download file bytes
149149
BaseApplication baseApplication = (BaseApplication) getActivity().getApplication();
150-
String downloadUrl = baseApplication.getBaseUrl() + imageGson.getBytesUrl();
150+
String downloadUrl = imageGson.getBytesUrl().startsWith("http")
151+
? imageGson.getBytesUrl()
152+
: baseApplication.getBaseUrl() + imageGson.getBytesUrl();
151153
Log.i(getClass().getName(), "downloadUrl: " + downloadUrl);
152154
byte[] bytes = MultimediaDownloader.downloadFileBytes(downloadUrl);
153155
Log.i(getClass().getName(), "bytes.length: " + bytes.length);
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package ai.elimu.content_provider.util;
2+
3+
import android.content.Context;
4+
import android.content.SharedPreferences;
5+
import android.text.TextUtils;
6+
7+
import ai.elimu.model.v2.enums.Language;
8+
9+
public class SharedPreferencesHelper {
10+
11+
public static final String SHARED_PREFS = "shared_prefs";
12+
13+
public static final String PREF_APP_VERSION_CODE = "pref_app_version_code";
14+
public static final String PREF_LANGUAGE = "pref_language";
15+
16+
public static void clearAllPreferences(Context context) {
17+
SharedPreferences sharedPreferences = context.getSharedPreferences(SHARED_PREFS, Context.MODE_PRIVATE);
18+
sharedPreferences.edit().clear().apply();
19+
}
20+
21+
22+
public static void storeAppVersionCode(Context context, int appVersionCode) {
23+
SharedPreferences sharedPreferences = context.getSharedPreferences(SHARED_PREFS, Context.MODE_PRIVATE);
24+
sharedPreferences.edit().putInt(PREF_APP_VERSION_CODE, appVersionCode).apply();
25+
}
26+
27+
public static int getAppVersionCode(Context context) {
28+
SharedPreferences sharedPreferences = context.getSharedPreferences(SHARED_PREFS, Context.MODE_PRIVATE);
29+
return sharedPreferences.getInt(PREF_APP_VERSION_CODE, 0);
30+
}
31+
32+
33+
public static void storeLanguage(Context context, Language language) {
34+
SharedPreferences sharedPreferences = context.getSharedPreferences(SHARED_PREFS, Context.MODE_PRIVATE);
35+
sharedPreferences.edit().putString(PREF_LANGUAGE, language.toString()).apply();
36+
}
37+
38+
public static Language getLanguage(Context context) {
39+
SharedPreferences sharedPreferences = context.getSharedPreferences(SHARED_PREFS, Context.MODE_PRIVATE);
40+
String languageAsString = sharedPreferences.getString(PREF_LANGUAGE, null);
41+
if (TextUtils.isEmpty(languageAsString)) {
42+
return null;
43+
} else {
44+
try {
45+
return Language.valueOf(languageAsString);
46+
} catch (IllegalArgumentException e) {
47+
return null;
48+
}
49+
}
50+
}
51+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package ai.elimu.content_provider.util;
2+
3+
import android.content.Context;
4+
import android.content.pm.PackageInfo;
5+
import android.content.pm.PackageManager;
6+
import android.util.Log;
7+
8+
/**
9+
* Helps detect upgrades from previously installed versions of the app.
10+
*/
11+
public class VersionHelper {
12+
13+
public static int getAppVersionCode(Context context) {
14+
Log.i(VersionHelper.class.getName(), "getAppVersionCode");
15+
16+
try {
17+
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
18+
return packageInfo.versionCode;
19+
} catch (PackageManager.NameNotFoundException e) {
20+
throw new RuntimeException("Could not get package name: " + e);
21+
}
22+
}
23+
24+
/**
25+
* Stores the version code of the application currently installed. And detects upgrades from previously installed
26+
* versions.
27+
*/
28+
public static void updateAppVersion(Context context) {
29+
Log.i(VersionHelper.class.getName(), "updateAppVersion");
30+
31+
// Check if the application's versionCode was upgraded
32+
int oldVersionCode = SharedPreferencesHelper.getAppVersionCode(context);
33+
int newVersionCode = VersionHelper.getAppVersionCode(context);
34+
if (oldVersionCode == 0) {
35+
SharedPreferencesHelper.storeAppVersionCode(context, newVersionCode);
36+
oldVersionCode = newVersionCode;
37+
}
38+
Log.i(VersionHelper.class.getName(),"oldVersionCode: " + oldVersionCode);
39+
Log.i(VersionHelper.class.getName(),"newVersionCode: " + newVersionCode);
40+
41+
// Handle upgrade from previous version
42+
if (oldVersionCode < newVersionCode) {
43+
Log.i(VersionHelper.class.getName(), "Upgrading application from version " + oldVersionCode + " to " + newVersionCode + "...");
44+
45+
// if (oldVersionCode < ???) {
46+
// ...
47+
// }
48+
49+
SharedPreferencesHelper.storeAppVersionCode(context, newVersionCode);
50+
}
51+
}
52+
}

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ buildscript {
66
mavenCentral()
77
}
88
dependencies {
9-
classpath 'com.android.tools.build:gradle:7.1.3'
9+
classpath 'com.android.tools.build:gradle:8.1.4'
1010
classpath 'org.ajoberstar.grgit:grgit-gradle:5.0.0'
1111

1212
// NOTE: Do not place your application dependencies here; they belong

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

utils/build.gradle

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@ plugins {
55

66
android {
77
compileSdk 34
8+
namespace 'ai.elimu.content_provider.utils'
89

910
defaultConfig {
1011
minSdkVersion 24
1112
targetSdkVersion 34
12-
versionCode 1002027
13-
versionName "1.2.27-SNAPSHOT"
13+
versionCode 1002028
14+
versionName "1.2.28-SNAPSHOT"
1415
setProperty("archivesBaseName", "utils-${versionName}")
1516
}
1617

@@ -26,7 +27,7 @@ android {
2627
}
2728

2829
dependencies {
29-
implementation 'com.github.elimu-ai:model:model-2.0.66' // See https://jitpack.io/#elimu-ai/model
30+
implementation 'com.github.elimu-ai:model:model-2.0.78' // See https://jitpack.io/#elimu-ai/model
3031
implementation 'com.github.elimu-ai:analytics:3.1.11@aar' // See https://jitpack.io/#elimu-ai/analytics
3132
}
3233

@@ -37,7 +38,7 @@ publishing {
3738
utils(MavenPublication) {
3839
groupId 'ai.elimu.content_provider'
3940
artifactId 'utils'
40-
version '1.2.27-SNAPSHOT'
41+
version '1.2.28-SNAPSHOT'
4142
artifact("${buildDir}/outputs/aar/utils-${version}-release.aar")
4243
}
4344
}

0 commit comments

Comments
 (0)