From a1c3a37a320baa1e02b1a16859f02254b1e7ccbe Mon Sep 17 00:00:00 2001 From: Felix Prahl-Kamps Date: Sun, 13 Oct 2019 18:24:46 +0200 Subject: [PATCH] upgraded dependencies add option to remove single sync (WIP) --- app/build.gradle | 8 +- app/src/main/AndroidManifest.xml | 6 +- .../mispbump/activities/HomeActivity.java | 105 ------------------ .../activities/PreferenceActivity.java | 13 +++ .../mispbump/activities/ProfileActivity.java | 8 +- .../activities/SyncInfoDetailActivity.java | 25 ++++- .../mispbump/adapters/SyncInfoAdapter.java | 17 +-- .../mispbump/auxiliary/MispRestClient.java | 2 +- .../res/layout/activity_sync_info_detail.xml | 1 + app/src/main/res/menu/menu_profile.xml | 3 +- app/src/main/res/menu/menu_sync_detail.xml | 9 ++ 11 files changed, 62 insertions(+), 135 deletions(-) create mode 100644 app/src/main/res/menu/menu_sync_detail.xml diff --git a/app/build.gradle b/app/build.gradle index 46df4c4..484681f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -32,17 +32,17 @@ repositories { dependencies { // android - implementation 'com.google.android.material:material:1.0.0' + implementation 'com.google.android.material:material:1.1.0-beta01' implementation 'androidx.legacy:legacy-support-v4:1.0.0' - implementation 'androidx.appcompat:appcompat:1.1.0-rc01' + implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.recyclerview:recyclerview:1.0.0' - implementation 'androidx.preference:preference:1.1.0-rc01' + implementation 'androidx.preference:preference:1.1.0' // retrofit implementation 'com.squareup.retrofit2:retrofit:2.6.1' - implementation 'com.squareup.retrofit2:converter-gson:2.6.1' + implementation 'com.squareup.retrofit2:converter-gson:2.6.2' implementation 'com.squareup.okhttp3:logging-interceptor:4.1.0' // barcode reading diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dd0814a..81375dd 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,9 @@ xmlns:tools="http://schemas.android.com/tools" package="lu.circl.mispbump"> + + + - - - diff --git a/app/src/main/java/lu/circl/mispbump/activities/HomeActivity.java b/app/src/main/java/lu/circl/mispbump/activities/HomeActivity.java index 64671eb..57e34a9 100644 --- a/app/src/main/java/lu/circl/mispbump/activities/HomeActivity.java +++ b/app/src/main/java/lu/circl/mispbump/activities/HomeActivity.java @@ -24,20 +24,15 @@ import lu.circl.mispbump.adapters.SyncInfoAdapter; import lu.circl.mispbump.auxiliary.MispRestClient; import lu.circl.mispbump.auxiliary.PreferenceManager; import lu.circl.mispbump.interfaces.OnRecyclerItemClickListener; -import lu.circl.mispbump.models.ExchangeInformation; import lu.circl.mispbump.models.SyncInformation; -import lu.circl.mispbump.models.restModels.MispServer; -import lu.circl.mispbump.models.restModels.MispUser; import lu.circl.mispbump.models.restModels.Organisation; import lu.circl.mispbump.models.restModels.Role; -import lu.circl.mispbump.models.restModels.Server; import lu.circl.mispbump.models.restModels.User; public class HomeActivity extends AppCompatActivity { private PreferenceManager preferenceManager; - private MispRestClient restClient; private List syncInformationList; private RecyclerView recyclerView; @@ -56,8 +51,6 @@ public class HomeActivity extends AppCompatActivity { setContentView(R.layout.activity_home); preferenceManager = PreferenceManager.getInstance(this); - Pair credentials = preferenceManager.getUserCredentials(); - restClient = MispRestClient.getInstance(credentials.first, credentials.second); initViews(); initRecyclerView(); @@ -89,10 +82,6 @@ public class HomeActivity extends AppCompatActivity { protected void onResume() { super.onResume(); refreshRecyclerView(); - - if (!preferenceManager.getShowLocalSyncsOnly()) { - fetchRemoteSyncs(); - } } @@ -171,98 +160,4 @@ public class HomeActivity extends AppCompatActivity { }); } } - - private void fetchRemoteSyncs() { - restClient.getAllServers(new MispRestClient.AllRawServersCallback() { - @Override - public void success(List mispServers) { - if (mispServers.size() < 1) { - return; - } - - List syncInformationList = preferenceManager.getSyncInformationList(); - - for (MispServer mispServer : mispServers) { - - boolean existsOffline = false; - - for (SyncInformation syncInformation : syncInformationList) { - int localServerId = syncInformation.getRemote().getServer().getId(); - int remoteServerId = mispServer.getServer().getId(); - - if (remoteServerId == localServerId) { - existsOffline = true; - break; - } - } - - if (!existsOffline) { - // mispServer is not locally available - SyncInformation syncInformation = new SyncInformation(); - - ExchangeInformation local = new ExchangeInformation(); - local.setOrganisation(preferenceManager.getUserOrganisation().toSyncOrganisation()); - User syncUser = preferenceManager.getUserInfo().toSyncUser(); - syncUser.setAuthkey("Could not be recovered"); - syncUser.setPassword("Could not be recovered"); - local.setSyncUser(syncUser); - local.setServer(new Server(preferenceManager.getUserCredentials().first)); - - ExchangeInformation remote = new ExchangeInformation(); - remote.setServer(mispServer.getServer()); - - restClient.getOrganisation(mispServer.getRemoteOrganisation().getId(), new MispRestClient.OrganisationCallback() { - @Override - public void success(Organisation organisation) { - remote.setOrganisation(organisation); - - restClient.getAllUsers(new MispRestClient.AllMispUsersCallback() { - @Override - public void success(List users) { - for (MispUser mispUser : users) { - - boolean isSyncUserRole = false; - - Role[] roles = preferenceManager.getRoles(); - - for (Role role : roles) { - if (role.getId().equals(mispUser.getRole().getId())) { - isSyncUserRole = role.isSyncUserRole(); - break; - } - } - - if (mispUser.getOrganisation().getId().equals(organisation.getId()) && isSyncUserRole) { - remote.setSyncUser(mispUser.getUser()); - - syncInformation.setLocal(local); - syncInformation.setRemote(remote); - - preferenceManager.addSyncInformation(syncInformation); - refreshRecyclerView(); - } - } - } - @Override - public void failure(String error) { - Snackbar.make(recyclerView, error, Snackbar.LENGTH_LONG).show(); - } - }); - } - - @Override - public void failure(String error) { - Snackbar.make(recyclerView, error, Snackbar.LENGTH_LONG).show(); - } - }); - } - } - } - - @Override - public void failure(String error) { - Snackbar.make(recyclerView, error, Snackbar.LENGTH_SHORT).show(); - } - }); - } } diff --git a/app/src/main/java/lu/circl/mispbump/activities/PreferenceActivity.java b/app/src/main/java/lu/circl/mispbump/activities/PreferenceActivity.java index cb57e39..e61dd6b 100644 --- a/app/src/main/java/lu/circl/mispbump/activities/PreferenceActivity.java +++ b/app/src/main/java/lu/circl/mispbump/activities/PreferenceActivity.java @@ -5,7 +5,9 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; +import android.view.MenuItem; +import androidx.annotation.NonNull; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; @@ -37,6 +39,17 @@ public class PreferenceActivity extends AppCompatActivity { .commit(); } + @Override + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + if (item.getItemId() == android.R.id.home) { + onBackPressed(); + return true; + } + + return false; + } + + public static class PreferencesFragment extends PreferenceFragmentCompat { private Context context; diff --git a/app/src/main/java/lu/circl/mispbump/activities/ProfileActivity.java b/app/src/main/java/lu/circl/mispbump/activities/ProfileActivity.java index acef7bd..d847670 100644 --- a/app/src/main/java/lu/circl/mispbump/activities/ProfileActivity.java +++ b/app/src/main/java/lu/circl/mispbump/activities/ProfileActivity.java @@ -75,11 +75,15 @@ public class ProfileActivity extends AppCompatActivity { @Override public boolean onOptionsItemSelected(MenuItem item) { - if (item.getItemId() == R.id.menu_delete_profile) { + if (item.getItemId() == android.R.id.home) { + onBackPressed(); + return true; + } else if (item.getItemId() == R.id.menu_delete_profile) { clearDeviceAndLogOut(); + return true; } - return super.onOptionsItemSelected(item); + return false; } diff --git a/app/src/main/java/lu/circl/mispbump/activities/SyncInfoDetailActivity.java b/app/src/main/java/lu/circl/mispbump/activities/SyncInfoDetailActivity.java index 66280af..d95d69f 100644 --- a/app/src/main/java/lu/circl/mispbump/activities/SyncInfoDetailActivity.java +++ b/app/src/main/java/lu/circl/mispbump/activities/SyncInfoDetailActivity.java @@ -3,8 +3,11 @@ package lu.circl.mispbump.activities; import android.content.Intent; import android.os.Bundle; +import android.view.Menu; +import android.view.MenuItem; import android.view.View; +import androidx.annotation.NonNull; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; @@ -25,6 +28,7 @@ public class SyncInfoDetailActivity extends AppCompatActivity { public static String EXTRA_SYNC_INFO_UUID = "EXTRA_SYNC_INFO_UUID"; + private UUID syncUUID; private PreferenceManager preferenceManager; private SyncInformation syncInformation; @@ -42,10 +46,11 @@ public class SyncInfoDetailActivity extends AppCompatActivity { setContentView(R.layout.activity_sync_info_detail); preferenceManager = PreferenceManager.getInstance(SyncInfoDetailActivity.this); - syncInformation = preferenceManager.getSyncInformation(getExtraUuid()); + syncUUID = getExtraUuid(); + syncInformation = preferenceManager.getSyncInformation(syncUUID); if (syncInformation == null) { - throw new RuntimeException("Could not find UploadInformation with UUID {" + getExtraUuid().toString() + "}"); + throw new RuntimeException("Could not find UploadInformation with UUID {" + syncUUID + "}"); } initToolbar(); @@ -53,6 +58,22 @@ public class SyncInfoDetailActivity extends AppCompatActivity { populateContent(); } + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.menu_sync_detail, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + // preferenceManager.removeUploadInformation(syncUUID); + if (item.getItemId() == android.R.id.home) { + onBackPressed(); + return true; + } else return item.getItemId() == R.id.menu_delete_sync; + + } + @Override protected void onPause() { super.onPause(); diff --git a/app/src/main/java/lu/circl/mispbump/adapters/SyncInfoAdapter.java b/app/src/main/java/lu/circl/mispbump/adapters/SyncInfoAdapter.java index e346686..e5a0d41 100644 --- a/app/src/main/java/lu/circl/mispbump/adapters/SyncInfoAdapter.java +++ b/app/src/main/java/lu/circl/mispbump/adapters/SyncInfoAdapter.java @@ -53,7 +53,7 @@ public class SyncInfoAdapter extends RecyclerView.Adapter onRecyclerPositionClickListener.onClick(view, position)); } diff --git a/app/src/main/java/lu/circl/mispbump/auxiliary/MispRestClient.java b/app/src/main/java/lu/circl/mispbump/auxiliary/MispRestClient.java index 68350ed..352873f 100644 --- a/app/src/main/java/lu/circl/mispbump/auxiliary/MispRestClient.java +++ b/app/src/main/java/lu/circl/mispbump/auxiliary/MispRestClient.java @@ -60,7 +60,7 @@ public class MispRestClient { Retrofit retrofit = new Retrofit.Builder() .baseUrl(url) .addConverterFactory(GsonConverterFactory.create()) - .client(getCustomClient(true, true, authkey)) + .client(getCustomClient(false, false, authkey)) .build(); mispService = retrofit.create(MispService.class); diff --git a/app/src/main/res/layout/activity_sync_info_detail.xml b/app/src/main/res/layout/activity_sync_info_detail.xml index d893df2..4a347f4 100644 --- a/app/src/main/res/layout/activity_sync_info_detail.xml +++ b/app/src/main/res/layout/activity_sync_info_detail.xml @@ -3,6 +3,7 @@ + android:title="Delete Profile" /> diff --git a/app/src/main/res/menu/menu_sync_detail.xml b/app/src/main/res/menu/menu_sync_detail.xml new file mode 100644 index 0000000..29333ef --- /dev/null +++ b/app/src/main/res/menu/menu_sync_detail.xml @@ -0,0 +1,9 @@ + + + + + +