Skip to content

Commit 2dea57f

Browse files
authored
Merge pull request #534 from maks/533-gdpr-dialog
gdpr dialog
2 parents 05b6184 + 6c3178f commit 2dea57f

File tree

18 files changed

+140
-114
lines changed

18 files changed

+140
-114
lines changed

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ android {
1515

1616
vectorDrawables.useSupportLibrary = true
1717

18-
versionCode 218
19-
versionName "1.5.8"
18+
versionCode 219
19+
versionName "1.5.9"
2020
}
2121

2222
dataBinding {

app/src/debug/java/me/sheimi/sgit/MGitDebugApplication.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88

99
/**
1010
* Provides debug-build specific Application.
11-
*
11+
* <p>
1212
* To disable Stetho console logging change the setting in src/debug/res/values/bools.xml
1313
*/
14-
public class MGitDebugApplication extends SGitApplication {
14+
public class MGitDebugApplication extends MGitApplication {
1515

1616
private static final String LOGTAG = MGitDebugApplication.class.getSimpleName();
1717

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
1010

1111
<application
12-
android:name=".SGitApplication"
12+
android:name=".MGitApplication"
1313
android:allowBackup="true"
1414
android:largeHeap="true"
1515
android:icon="@mipmap/ic_launcher"

app/src/main/java/com/manichord/mgit/clone/CloneViewModel.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package com.manichord.mgit.clone
33
import android.app.Application
44
import android.arch.lifecycle.AndroidViewModel
55
import android.arch.lifecycle.MutableLiveData
6+
import me.sheimi.sgit.MGitApplication
67
import me.sheimi.sgit.R
7-
import me.sheimi.sgit.SGitApplication
88
import me.sheimi.sgit.database.models.Repo
99
import me.sheimi.sgit.repo.tasks.repo.CloneTask
1010
import me.sheimi.sgit.repo.tasks.repo.InitLocalTask
@@ -85,7 +85,7 @@ class CloneViewModel(application: Application) : AndroidViewModel(application) {
8585
private fun validateRemoteUrl(remoteUrl: String): Boolean {
8686
remoteUrlError.value = null
8787
if (remoteUrl.isBlank()) {
88-
remoteUrlError.value = getApplication<SGitApplication>().getString(R.string.alert_remoteurl_required)
88+
remoteUrlError.value = getApplication<MGitApplication>().getString(R.string.alert_remoteurl_required)
8989
return false
9090
}
9191
return true
@@ -94,18 +94,18 @@ class CloneViewModel(application: Application) : AndroidViewModel(application) {
9494
private fun validateLocalName(localName: String): Boolean {
9595
localRepoNameError.value = null
9696
if (localName.isBlank()) {
97-
localRepoNameError.value = getApplication<SGitApplication>().getString((R.string.alert_localpath_required))
97+
localRepoNameError.value = getApplication<MGitApplication>().getString((R.string.alert_localpath_required))
9898
return false
9999
}
100100
if (localName.contains("/")) {
101-
localRepoNameError.value = getApplication<SGitApplication>().getString((R.string.alert_localpath_format))
101+
localRepoNameError.value = getApplication<MGitApplication>().getString((R.string.alert_localpath_format))
102102
return false
103103
}
104104

105-
val prefsHelper = (getApplication<SGitApplication>()).prefenceHelper
105+
val prefsHelper = (getApplication<MGitApplication>()).prefenceHelper
106106
val file = Repo.getDir(prefsHelper, localName)
107107
if (file.exists()) {
108-
localRepoNameError.value = getApplication<SGitApplication>().getString((R.string.alert_localpath_repo_exists))
108+
localRepoNameError.value = getApplication<MGitApplication>().getString((R.string.alert_localpath_repo_exists))
109109
return false
110110
}
111111
return true

app/src/main/java/com/manichord/mgit/repolist/RepoListActivity.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
import java.util.List;
2828

2929
import me.sheimi.android.activities.SheimiFragmentActivity;
30+
import me.sheimi.sgit.MGitApplication;
3031
import me.sheimi.sgit.R;
31-
import me.sheimi.sgit.SGitApplication;
3232
import me.sheimi.sgit.activities.RepoDetailActivity;
3333
import me.sheimi.sgit.activities.UserSettingsActivity;
3434
import me.sheimi.sgit.activities.explorer.ExploreFileActivity;
@@ -62,6 +62,8 @@ protected void onCreate(Bundle savedInstanceState) {
6262

6363
checkAndRequestRequiredPermissions(Manifest.permission.WRITE_EXTERNAL_STORAGE);
6464

65+
enforcePrivacy(this);
66+
6567
RepoListViewModel viewModel = ViewModelProviders.of(this).get(RepoListViewModel.class);
6668
CloneViewModel cloneViewModel = ViewModelProviders.of(this).get(CloneViewModel.class);
6769

@@ -121,7 +123,7 @@ public void onActionClick(String action) {
121123
Intent intent = new Intent(mContext, RepoDetailActivity.class);
122124
intent.putExtra(Repo.TAG, repositoriesWithSameRemote.get(0));
123125
startActivity(intent);
124-
} else if (Repo.getDir(((SGitApplication) getApplicationContext()).getPrefenceHelper(), repoName).exists()) {
126+
} else if (Repo.getDir(((MGitApplication) getApplicationContext()).getPrefenceHelper(), repoName).exists()) {
125127
// Repository with name end already exists, see https://github.com/maks/MGit/issues/289
126128
cloneViewModel.setRemoteUrl(repoUrlBuilder.toString());
127129
showCloneView();

app/src/main/java/me/sheimi/android/activities/SheimiFragmentActivity.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.sheimi.android.activities;
22

3+
import android.app.Activity;
34
import android.app.AlertDialog;
45
import android.content.DialogInterface;
56
import android.content.Intent;
@@ -27,8 +28,10 @@
2728
import me.sheimi.android.avatar.AvatarDownloader;
2829
import me.sheimi.android.utils.BasicFunctions;
2930
import me.sheimi.android.utils.Profile;
31+
import me.sheimi.sgit.MGitApplication;
3032
import me.sheimi.sgit.R;
3133
import me.sheimi.sgit.dialogs.DummyDialogListener;
34+
import me.sheimi.sgit.preference.PreferenceHelper;
3235

3336
public class SheimiFragmentActivity extends AppCompatActivity {
3437

@@ -92,6 +95,28 @@ protected void checkAndRequestRequiredPermissions(String permission) {
9295
}
9396
}
9497

98+
protected void enforcePrivacy(final Activity activity) {
99+
final PreferenceHelper prefHelper = ((MGitApplication)activity.getApplication()).getPrefenceHelper();
100+
if (prefHelper.isPrivacyAccepted()) {
101+
return;
102+
}
103+
104+
showMessageDialog(R.string.dialog_privacy_title, getString(R.string.dialog_privacy_message),
105+
R.string.dialog_privacy_ok_button, R.string.dialog_privacy_close_button,
106+
new DialogInterface.OnClickListener() {
107+
@Override
108+
public void onClick(DialogInterface dialogInterface, int i) {
109+
prefHelper.setPrivacyAccepted();
110+
}
111+
},
112+
new DialogInterface.OnClickListener() {
113+
@Override
114+
public void onClick(DialogInterface dialogInterface, int i) {
115+
activity.finish();
116+
}
117+
});
118+
}
119+
95120
/* View Utils Start */
96121
public void showToastMessage(final String msg) {
97122
runOnUiThread(new Runnable() {

app/src/main/java/me/sheimi/android/utils/Profile.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,8 @@
33
import android.content.Context;
44
import android.content.SharedPreferences;
55
import android.content.res.TypedArray;
6-
import android.util.Log;
76

87
import me.sheimi.sgit.R;
9-
import me.sheimi.sgit.SGitApplication;
108
import me.sheimi.sgit.database.models.Repo;
119

1210
/**
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
package me.sheimi.sgit
2+
3+
import android.app.Application
4+
import android.content.Context
5+
import android.util.Log
6+
import com.manichord.mgit.transport.MGitHttpConnectionFactory
7+
import io.sentry.Sentry
8+
import io.sentry.android.AndroidSentryClientFactory
9+
import me.sheimi.android.utils.SecurePrefsException
10+
import me.sheimi.android.utils.SecurePrefsHelper
11+
import me.sheimi.sgit.preference.PreferenceHelper
12+
import org.eclipse.jgit.transport.CredentialsProvider
13+
import timber.log.Timber
14+
15+
/**
16+
* Custom Application Singleton
17+
*/
18+
open class MGitApplication : Application() {
19+
var securePrefsHelper: SecurePrefsHelper? = null
20+
var prefenceHelper: PreferenceHelper? = null
21+
22+
23+
companion object {
24+
private lateinit var mContext: Context
25+
private lateinit var mCredentialsProvider: CredentialsProvider
26+
val context: Context?
27+
get() = mContext
28+
29+
@JvmStatic fun getContext(): MGitApplication {
30+
return mContext as MGitApplication
31+
}
32+
33+
@JvmStatic fun getJschCredentialsProvider(): CredentialsProvider {
34+
return mCredentialsProvider
35+
}
36+
37+
init {
38+
MGitHttpConnectionFactory.install()
39+
}
40+
}
41+
42+
override fun onCreate() {
43+
super.onCreate()
44+
// only init Sentry if not debug build
45+
if (!BuildConfig.DEBUG) {
46+
Sentry.init(AndroidSentryClientFactory(this))
47+
Log.d("SENTRY", "SENTRY Configured")
48+
}
49+
mContext = applicationContext
50+
setAppVersionPref()
51+
prefenceHelper = PreferenceHelper(this)
52+
try {
53+
securePrefsHelper = SecurePrefsHelper(this)
54+
mCredentialsProvider = AndroidJschCredentialsProvider(securePrefsHelper)
55+
} catch (e: SecurePrefsException) {
56+
Timber.e(e)
57+
}
58+
}
59+
60+
private fun setAppVersionPref() {
61+
val sharedPreference = getSharedPreferences(
62+
getString(R.string.preference_file_key),
63+
Context.MODE_PRIVATE)
64+
val version = BuildConfig.VERSION_NAME
65+
sharedPreference
66+
.edit()
67+
.putString(getString(R.string.preference_key_app_version), version)
68+
.apply()
69+
}
70+
}

app/src/main/java/me/sheimi/sgit/SGitApplication.java

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

app/src/main/java/me/sheimi/sgit/activities/explorer/ExploreRootDirActivity.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@
1010
import java.io.FileFilter;
1111

1212
import me.sheimi.sgit.R;
13-
import me.sheimi.sgit.SGitApplication;
1413
import me.sheimi.sgit.database.models.Repo;
15-
import me.sheimi.sgit.preference.PreferenceHelper;
1614

1715
public class ExploreRootDirActivity extends FileExplorerActivity {
1816

0 commit comments

Comments
 (0)