Skip to content

Commit

Permalink
Updated Overview activity to display proprt review button
Browse files Browse the repository at this point in the history
  • Loading branch information
aanorbel committed Jan 24, 2024
1 parent a6256bf commit f30dd0d
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 56 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import static org.openobservatory.ooniprobe.common.service.RunTestService.CHANNEL_ID;

import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
Expand All @@ -13,7 +12,6 @@
import android.os.Bundle;
import android.os.PowerManager;
import android.provider.Settings;

import android.view.View;

import androidx.activity.result.ActivityResultLauncher;
Expand All @@ -36,7 +34,12 @@
import org.openobservatory.ooniprobe.R;
import org.openobservatory.ooniprobe.activity.adddescriptor.AddDescriptorActivity;
import org.openobservatory.ooniprobe.activity.reviewdescriptorupdates.ReviewDescriptorUpdatesActivity;
import org.openobservatory.ooniprobe.common.*;
import org.openobservatory.ooniprobe.common.Application;
import org.openobservatory.ooniprobe.common.NotificationUtility;
import org.openobservatory.ooniprobe.common.PreferenceManager;
import org.openobservatory.ooniprobe.common.TaskExecutor;
import org.openobservatory.ooniprobe.common.TestDescriptorManager;
import org.openobservatory.ooniprobe.common.ThirdPartyServices;
import org.openobservatory.ooniprobe.common.service.ServiceUtil;
import org.openobservatory.ooniprobe.common.worker.AutoUpdateDescriptorsWorker;
import org.openobservatory.ooniprobe.common.worker.ManualUpdateDescriptorsWorker;
Expand Down Expand Up @@ -177,7 +180,7 @@ private void scheduleWorkers() {
);
// TODO(aanorbel): add rules before checking updates
fetchManualUpdate();
registerReviewLauncher(binding.bottomNavigation);
registerReviewLauncher(binding.bottomNavigation, () -> null);
}

public void fetchManualUpdate() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,6 @@
import org.openobservatory.ooniprobe.common.ReadMorePlugin;
import org.openobservatory.ooniprobe.common.worker.ManualUpdateDescriptorsWorker;
import org.openobservatory.ooniprobe.databinding.ActivityOverviewBinding;
import org.openobservatory.ooniprobe.fragment.dynamicprogressbar.OONIRunDynamicProgressBar;
import org.openobservatory.ooniprobe.fragment.dynamicprogressbar.OnActionListener;
import org.openobservatory.ooniprobe.fragment.dynamicprogressbar.ProgressType;
import org.openobservatory.ooniprobe.model.database.InstalledDescriptor;
import org.openobservatory.ooniprobe.model.database.Result;
import org.openobservatory.ooniprobe.model.database.TestDescriptor;
Expand Down Expand Up @@ -162,7 +159,10 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
}

setUpOnCLickListeners();
registerReviewLauncher(binding.progressFragment);
registerReviewLauncher(binding.progressFragment, () -> {
binding.reviewUpdates.setVisibility(View.GONE);
return null;
});
}

private void selectAllBtnStatusObserver(String selectAllBtnStatus) {
Expand Down Expand Up @@ -196,8 +196,6 @@ private void setUpOnCLickListeners() {
binding.automaticUpdatesSwitch.setOnCheckedChangeListener((compoundButton, isChecked) -> viewModel.automaticUpdatesSwitchClicked(isChecked));
if (descriptor instanceof InstalledDescriptor) {
binding.swipeRefresh.setOnRefreshListener(() -> {
binding.swipeRefresh.setRefreshing(false);

Data.Builder data = new Data.Builder();
data.putLongArray(ManualUpdateDescriptorsWorker.KEY_DESCRIPTOR_IDS, new long[]{Objects.requireNonNull(descriptor.getDescriptor()).getRunId()});
OneTimeWorkRequest manualWorkRequest = new OneTimeWorkRequest.Builder(ManualUpdateDescriptorsWorker.class)
Expand Down Expand Up @@ -239,44 +237,25 @@ private void setUpOnCLickListeners() {
*/
private void onManualUpdatesFetchComplete(WorkInfo workInfo) {
if (workInfo != null) {
binding.reviewUpdateNotificationFragment.setVisibility(View.VISIBLE);
switch (workInfo.getState()) {
case SUCCEEDED -> getSupportFragmentManager()
.beginTransaction()
.add(
R.id.review_update_notification_fragment,
OONIRunDynamicProgressBar.newInstance(ProgressType.REVIEW_LINK, new OnActionListener() {
@Override
public void onActionButtonCLicked() {

getReviewUpdatesLauncher().launch(
ReviewDescriptorUpdatesActivity.newIntent(
OverviewActivity.this,
workInfo.getOutputData().getString(ManualUpdateDescriptorsWorker.KEY_UPDATED_DESCRIPTORS)
)
);
removeProgressFragment(R.id.review_update_notification_fragment);
}

@Override
public void onCloseButtonClicked() {
removeProgressFragment(R.id.review_update_notification_fragment);
}
}),
OONIRunDynamicProgressBar.getTAG() + "_review_update_success_notification"
).commit();
case ENQUEUED -> getSupportFragmentManager()
.beginTransaction()
.add(
R.id.review_update_notification_fragment,
OONIRunDynamicProgressBar.newInstance(ProgressType.UPDATE_LINK, null),
OONIRunDynamicProgressBar.getTAG() + "_review_update_enqueued_notification"
).commit();
case FAILED -> Snackbar.make(
binding.getRoot(),
R.string.Modal_Error,
Snackbar.LENGTH_LONG
).show();
case SUCCEEDED -> {
binding.reviewUpdates.setVisibility(View.VISIBLE);
binding.reviewUpdates.setOnClickListener(view -> getReviewUpdatesLauncher().launch(
ReviewDescriptorUpdatesActivity.newIntent(
OverviewActivity.this,
workInfo.getOutputData().getString(ManualUpdateDescriptorsWorker.KEY_UPDATED_DESCRIPTORS)
)
));
binding.swipeRefresh.setRefreshing(false);
}
case FAILED -> {
binding.swipeRefresh.setRefreshing(false);
Snackbar.make(
binding.getRoot(),
R.string.Modal_Error,
Snackbar.LENGTH_LONG
).show();
}
default -> {
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.openobservatory.ooniprobe.activity

import android.content.Intent
import android.util.Log
import android.view.View
import androidx.activity.result.ActivityResult
import androidx.activity.result.ActivityResultLauncher
Expand All @@ -11,11 +12,12 @@ import org.openobservatory.ooniprobe.activity.reviewdescriptorupdates.ReviewDesc
open class ReviewUpdatesAbstractActivity : AbstractActivity() {
var reviewUpdatesLauncher: ActivityResultLauncher<Intent>? = null

fun registerReviewLauncher(view: View) {
fun registerReviewLauncher(view: View, reviewCompletedListener: () -> Unit?) {
reviewUpdatesLauncher =
registerForActivityResult(ActivityResultContracts.StartActivityForResult())
{ result: ActivityResult ->
if (result.resultCode == RESULT_OK) {
reviewCompletedListener()
result.data?.let { intent: Intent ->
intent.getStringExtra(ReviewDescriptorUpdatesActivity.RESULT_MESSAGE)
?.let { message: String ->
Expand Down
20 changes: 12 additions & 8 deletions app/src/main/res/layout/activity_overview.xml
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,18 @@
app:cornerRadius="24dp"
app:rippleColor="@color/ripple_material_dark"
app:strokeColor="@android:color/white" />
<Button
android:id="@+id/review_updates"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Review Updates"
android:textAllCaps="false"
android:textColor="@android:color/white"
app:cornerRadius="24dp"
app:rippleColor="@color/ripple_material_dark"
app:strokeColor="@android:color/white"
android:visibility="gone"/>
</LinearLayout>

<androidx.appcompat.widget.Toolbar
Expand Down Expand Up @@ -227,14 +239,6 @@
</androidx.core.widget.NestedScrollView>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

<FrameLayout
android:id="@+id/review_update_notification_fragment"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_gravity="bottom"
android:visibility="gone"
app:layout_anchorGravity="bottom" />

<androidx.fragment.app.FragmentContainerView
android:id="@+id/progress_fragment"
android:name="org.openobservatory.ooniprobe.fragment.ProgressFragment"
Expand Down

0 comments on commit f30dd0d

Please sign in to comment.