diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a4c944a2d..17f6770d2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -96,10 +96,6 @@ android:label="@string/title_activity_featured_images" android:parentActivityName=".contributions.ContributionsActivity" /> - - { notificationBuilder = new NotificationCompat.Builder(context); Toast toast = new Toast(context); toast.setGravity(Gravity.CENTER,0,0); - toast = Toast.makeText(context,"Trying to nominate "+media.getDisplayTitle()+ " for deletion", Toast.LENGTH_SHORT); + toast = Toast.makeText(context,"Trying to nominate "+media.getDisplayTitle()+ " for deletion",Toast.LENGTH_SHORT); toast.show(); } @@ -64,7 +64,7 @@ public class DeleteTask extends AsyncTask { String editToken; String authCookie; - String summary = context.getString(R.string.nominating_file_for_deletion, media.getFilename()); + String summary = "Nominating " + media.getFilename() +" for deletion."; authCookie = sessionManager.getAuthCookie(); mwApi.setAuthCookie(authCookie); @@ -97,19 +97,19 @@ public class DeleteTask extends AsyncTask { publishProgress(1); mwApi.prependEdit(editToken,fileDeleteString+"\n", - media.getFilename(), summary); + media.getFilename(),summary); publishProgress(2); mwApi.edit(editToken,subpageString+"\n", - "Commons:Deletion_requests/"+media.getFilename(), summary); + "Commons:Deletion_requests/"+media.getFilename(),summary); publishProgress(3); mwApi.appendEdit(editToken,logPageString+"\n", - "Commons:Deletion_requests/"+date, summary); + "Commons:Deletion_requests/"+date,summary); publishProgress(4); mwApi.appendEdit(editToken,userPageString+"\n", - "User_Talk:"+sessionManager.getCurrentAccount().name, summary); + "User_Talk:"+sessionManager.getCurrentAccount().name,summary); publishProgress(5); } catch (Exception e) { @@ -123,21 +123,29 @@ public class DeleteTask extends AsyncTask { protected void onProgressUpdate (Integer... values){ super.onProgressUpdate(values); - int[] messages = new int[]{ - R.string.getting_edit_token, - R.string.nominate_for_deletion_edit_file_page, - R.string.nominate_for_deletion_create_deletion_request, - R.string.nominate_for_deletion_edit_deletion_request_log, - R.string.nominate_for_deletion_notify_user, - R.string.nominate_for_deletion_done - }; - String message = ""; - if (0 < values[0] && values[0] < messages.length) { - message = context.getString(messages[values[0]]); + switch (values[0]){ + case 0: + message = "Getting token"; + break; + case 1: + message = "Adding delete message to file"; + break; + case 2: + message = "Creating Delete requests sub-page"; + break; + case 3: + message = "Adding file to Delete requests log"; + break; + case 4: + message = "Notifying User on Talk page"; + break; + case 5: + message = "Done"; + break; } - notificationBuilder.setContentTitle(context.getString(R.string.nominating_file_for_deletion, media.getFilename())) + notificationBuilder.setContentTitle("Nominating "+media.getDisplayTitle()+" for deletion") .setStyle(new NotificationCompat.BigTextStyle() .bigText(message)) .setSmallIcon(R.drawable.ic_launcher) diff --git a/app/src/main/java/fr/free/nrw/commons/di/ActivityBuilderModule.java b/app/src/main/java/fr/free/nrw/commons/di/ActivityBuilderModule.java index e062dbcc9..51aa85903 100644 --- a/app/src/main/java/fr/free/nrw/commons/di/ActivityBuilderModule.java +++ b/app/src/main/java/fr/free/nrw/commons/di/ActivityBuilderModule.java @@ -10,7 +10,6 @@ import fr.free.nrw.commons.contributions.ContributionsActivity; import fr.free.nrw.commons.category.CategoryImagesActivity; import fr.free.nrw.commons.nearby.NearbyActivity; import fr.free.nrw.commons.notification.NotificationActivity; -import fr.free.nrw.commons.review.ReviewActivity; import fr.free.nrw.commons.settings.SettingsActivity; import fr.free.nrw.commons.upload.MultipleShareActivity; import fr.free.nrw.commons.upload.ShareActivity; @@ -51,7 +50,4 @@ public abstract class ActivityBuilderModule { @ContributesAndroidInjector abstract CategoryImagesActivity bindFeaturedImagesActivity(); - - @ContributesAndroidInjector - abstract ReviewActivity bindReviewActivity(); } diff --git a/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java b/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java index 99ad9a346..91f6d4ccb 100644 --- a/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java +++ b/app/src/main/java/fr/free/nrw/commons/di/CommonsApplicationComponent.java @@ -9,11 +9,11 @@ import dagger.android.support.AndroidSupportInjectionModule; import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.MediaWikiImageView; import fr.free.nrw.commons.auth.LoginActivity; +import fr.free.nrw.commons.contributions.Contribution; +import fr.free.nrw.commons.contributions.ContributionsActivity; import fr.free.nrw.commons.contributions.ContributionsSyncAdapter; import fr.free.nrw.commons.delete.DeleteTask; import fr.free.nrw.commons.modifications.ModificationsSyncAdapter; -import fr.free.nrw.commons.review.CheckCategoryTask; -import fr.free.nrw.commons.review.SendThankTask; import fr.free.nrw.commons.settings.SettingsFragment; import fr.free.nrw.commons.nearby.PlaceRenderer; @@ -40,10 +40,6 @@ public interface CommonsApplicationComponent extends AndroidInjector getNotifications() { @@ -653,59 +616,11 @@ public class ApacheHttpClientMediaWikiApi implements MediaWikiApi { } private Date parseMWDate(String mwDate) { + SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.ENGLISH); // Assuming MW always gives me UTC try { return isoFormat.parse(mwDate); } catch (ParseException e) { throw new RuntimeException(e); } } - - private String formatMWDate(Date date) { - return isoFormat.format(date); - } - - public Media getRecentRandomImage() throws IOException { - Media media = null; - int tries = 0; - Random r = new Random(); - - while (media == null && tries < MAX_RANDOM_TRIES) { - Date now = new Date(); - Date startDate = new Date(now.getTime() - r.nextInt(RANDOM_SECONDS) * 1000L); - ApiResult apiResult = null; - try { - MWApi.RequestBuilder requestBuilder = api.action("query") - .param("list", "recentchanges") - .param("rcstart", formatMWDate(startDate)) - .param("rcnamespace", FILE_NAMESPACE) - .param("rcprop", "title|ids") - .param("rctype", "new|log") - .param("rctoponly", "1"); - - apiResult = requestBuilder.get(); - } catch (IOException e) { - Timber.e("Failed to obtain recent random", e); - } - if (apiResult != null) { - ApiResult recentChangesNode = apiResult.getNode("/api/query/recentchanges"); - if (recentChangesNode != null - && recentChangesNode.getDocument() != null - && recentChangesNode.getDocument().getChildNodes() != null - && recentChangesNode.getDocument().getChildNodes().getLength() > 0) { - NodeList childNodes = recentChangesNode.getDocument().getChildNodes(); - String imageTitle = RecentChangesImageUtils.findImageInRecentChanges(childNodes); - if (imageTitle != null) { - boolean deletionStatus = pageExists("Commons:Deletion_requests/" + imageTitle); - if (!deletionStatus) { - // strip File: prefix - imageTitle = imageTitle.replace("File:", ""); - media = new Media(imageTitle); - } - } - } - } - tries++; - } - return media; - } } diff --git a/app/src/main/java/fr/free/nrw/commons/mwapi/MediaWikiApi.java b/app/src/main/java/fr/free/nrw/commons/mwapi/MediaWikiApi.java index 4046530d1..c0bd2fd87 100644 --- a/app/src/main/java/fr/free/nrw/commons/mwapi/MediaWikiApi.java +++ b/app/src/main/java/fr/free/nrw/commons/mwapi/MediaWikiApi.java @@ -75,14 +75,7 @@ public interface MediaWikiApi { @NonNull Single getUploadCount(String userName); - boolean thank(String editToken, String revision) throws IOException; - - String firstRevisionOfFile(String filename) throws IOException; - interface ProgressListener { void onProgress(long transferred, long total); } - - @Nullable - Media getRecentRandomImage() throws IOException; } diff --git a/app/src/main/java/fr/free/nrw/commons/review/CheckCategoryTask.java b/app/src/main/java/fr/free/nrw/commons/review/CheckCategoryTask.java deleted file mode 100644 index d2086e5bd..000000000 --- a/app/src/main/java/fr/free/nrw/commons/review/CheckCategoryTask.java +++ /dev/null @@ -1,130 +0,0 @@ -package fr.free.nrw.commons.review; - -import android.app.NotificationManager; -import android.content.Context; -import android.os.AsyncTask; -import android.support.v4.app.NotificationCompat; -import android.view.Gravity; -import android.widget.Toast; - -import javax.inject.Inject; - -import fr.free.nrw.commons.Media; -import fr.free.nrw.commons.R; -import fr.free.nrw.commons.auth.SessionManager; -import fr.free.nrw.commons.di.ApplicationlessInjection; -import fr.free.nrw.commons.mwapi.MediaWikiApi; -import timber.log.Timber; - -import static android.support.v4.app.NotificationCompat.DEFAULT_ALL; -import static android.support.v4.app.NotificationCompat.PRIORITY_HIGH; - -// Example code: -// CheckCategoryTask deleteTask = new CheckCategoryTask(getActivity(), media); - -public class CheckCategoryTask extends AsyncTask { - - @Inject - MediaWikiApi mwApi; - @Inject - SessionManager sessionManager; - - public static final int NOTIFICATION_CHECK_CATEGORY = 0x101; - - private NotificationManager notificationManager; - private NotificationCompat.Builder notificationBuilder; - private Context context; - private Media media; - - public CheckCategoryTask(Context context, Media media){ - this.context = context; - this.media = media; - } - - @Override - protected void onPreExecute(){ - ApplicationlessInjection - .getInstance(context.getApplicationContext()) - .getCommonsApplicationComponent() - .inject(this); - - notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); - notificationBuilder = new NotificationCompat.Builder(context); - Toast toast = new Toast(context); - toast.setGravity(Gravity.CENTER,0,0); - toast = Toast.makeText(context, context.getString(R.string.check_category_toast, media.getDisplayTitle()), Toast.LENGTH_SHORT); - toast.show(); - } - - @Override - protected Boolean doInBackground(Void ...voids) { - publishProgress(0); - - String editToken; - String authCookie; - String summary = context.getString(R.string.check_category_edit_summary); - - authCookie = sessionManager.getAuthCookie(); - mwApi.setAuthCookie(authCookie); - - try { - editToken = mwApi.getEditToken(); - if (editToken.equals("+\\")) { - return false; - } - publishProgress(1); - - mwApi.appendEdit(editToken, "\n{{subst:chc}}\n", media.getFilename(), summary); - publishProgress(2); - } - catch (Exception e) { - Timber.d(e.getMessage()); - return false; - } - return true; - } - - @Override - protected void onProgressUpdate (Integer... values){ - super.onProgressUpdate(values); - - int[] messages = new int[]{R.string.getting_edit_token, R.string.check_category_adding_template}; - String message = ""; - if (0 < values[0] && values[0] < messages.length) { - message = context.getString(messages[values[0]]); - } - - notificationBuilder.setContentTitle(context.getString(R.string.check_category_notification_title, media.getDisplayTitle())) - .setStyle(new NotificationCompat.BigTextStyle() - .bigText(message)) - .setSmallIcon(R.drawable.ic_launcher) - .setProgress(messages.length, values[0], false) - .setOngoing(true); - notificationManager.notify(NOTIFICATION_CHECK_CATEGORY, notificationBuilder.build()); - } - - @Override - protected void onPostExecute(Boolean result) { - String message = ""; - String title = ""; - - if (result){ - title = context.getString(R.string.check_category_success_title); - message = context.getString(R.string.check_category_success_message, media.getDisplayTitle()); - } - else { - title = context.getString(R.string.check_category_failure_title); - message = context.getString(R.string.check_category_failure_message, media.getDisplayTitle()); - } - - notificationBuilder.setDefaults(DEFAULT_ALL) - .setContentTitle(title) - .setStyle(new NotificationCompat.BigTextStyle() - .bigText(message)) - .setSmallIcon(R.drawable.ic_launcher) - .setProgress(0,0,false) - .setOngoing(false) - .setPriority(PRIORITY_HIGH); - notificationManager.notify(NOTIFICATION_CHECK_CATEGORY, notificationBuilder.build()); - } -} \ No newline at end of file diff --git a/app/src/main/java/fr/free/nrw/commons/review/ReviewActivity.java b/app/src/main/java/fr/free/nrw/commons/review/ReviewActivity.java deleted file mode 100644 index 4d51b97f3..000000000 --- a/app/src/main/java/fr/free/nrw/commons/review/ReviewActivity.java +++ /dev/null @@ -1,173 +0,0 @@ -package fr.free.nrw.commons.review; - -import android.app.AlertDialog; -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; - -import android.os.Handler; -import android.support.design.widget.NavigationView; -import android.support.v4.view.ViewPager; -import android.support.v4.widget.DrawerLayout; -import android.support.v7.widget.Toolbar; - -import android.util.Log; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.widget.EditText; - -import com.viewpagerindicator.CirclePageIndicator; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import javax.inject.Inject; - -import butterknife.BindView; -import butterknife.ButterKnife; -import fr.free.nrw.commons.Media; -import fr.free.nrw.commons.R; -import fr.free.nrw.commons.Utils; -import fr.free.nrw.commons.auth.AuthenticatedActivity; -import fr.free.nrw.commons.mwapi.MediaResult; -import fr.free.nrw.commons.mwapi.MediaWikiApi; -import fr.free.nrw.commons.utils.MediaDataExtractorUtil; -import io.reactivex.Observable; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.schedulers.Schedulers; - -/** - * Created by root on 18.05.2018. - */ - -public class ReviewActivity extends AuthenticatedActivity { - - @BindView(R.id.toolbar) - Toolbar toolbar; - @BindView(R.id.navigation_view) - NavigationView navigationView; - @BindView(R.id.drawer_layout) - DrawerLayout drawerLayout; - - @BindView(R.id.reviewPager) - ViewPager pager; - - @Inject MediaWikiApi mwApi; - - private ReviewPagerAdapter reviewPagerAdapter; - - //private ReviewCallback reviewCallback; - private ReviewController reviewController; - - @BindView(R.id.reviewPagerIndicator) - public CirclePageIndicator pagerIndicator; - - @Override - protected void onAuthCookieAcquired(String authCookie) { - - } - - @Override - protected void onAuthFailure() { - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_review); - ButterKnife.bind(this); - initDrawer(); - - reviewController = new ReviewController(); - - - reviewPagerAdapter = new ReviewPagerAdapter(getSupportFragmentManager()); - pager.setAdapter(reviewPagerAdapter); - reviewPagerAdapter.getItem(0); - pagerIndicator.setViewPager(pager); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.review_randomizer_menu, menu); - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - int id = item.getItemId(); - - if (id == R.id.action_review_randomizer) { - Observable.fromCallable(() -> { - Media result = null; - try { - result = mwApi.getRecentRandomImage(); - - //String thumBaseUrl = Utils.makeThumbBaseUrl(result.getFilename()); - //reviewPagerAdapter.currentThumbBasedUrl = thumBaseUrl; - - //Log.d("review", result.getWikiSource()); - - } catch (IOException e) { - Log.d("review", e.toString()); - } - return result; - }) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(this::updateImage); - return true; - } - - return super.onOptionsItemSelected(item); - } - - private void updateImage(Media result) { - reviewController.onImageRefreshed(result.getFilename()); //file name is updated - reviewPagerAdapter.updateFilename(); - pager.setCurrentItem(0); - Observable.fromCallable(() -> { - MediaResult media = mwApi.fetchMediaByFilename("File:" + result.getFilename()); - return MediaDataExtractorUtil.extractCategories(media.getWikiSource()); - }) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(this::updateCategories); - } - - private void updateCategories(ArrayList categories) { - reviewController.onCategoriesRefreshed(categories); - reviewPagerAdapter.updateCategories(); - } - - /** - * References ReviewPagerAdapter to null before the activity is destroyed - */ - @Override - public void onDestroy() { - //adapter.setCallback(null); - super.onDestroy(); - } - - /** - * Consumers should be simply using this method to use this activity. - * @param context - * @param title Page title - */ - public static void startYourself(Context context, String title) { - Intent reviewActivity = new Intent(context, ReviewActivity.class); - context.startActivity(reviewActivity); - } - - interface ReviewCallback { - void onImageRefreshed(String itemTitle); - void onQuestionChanged(); - void onSurveyFinished(); - void onImproperImageReported(); - void onLicenceViolationReported(); - void onWrongCategoryReported(); - void onThankSent(); - } -} diff --git a/app/src/main/java/fr/free/nrw/commons/review/ReviewController.java b/app/src/main/java/fr/free/nrw/commons/review/ReviewController.java deleted file mode 100644 index 2bde33ecd..000000000 --- a/app/src/main/java/fr/free/nrw/commons/review/ReviewController.java +++ /dev/null @@ -1,52 +0,0 @@ -package fr.free.nrw.commons.review; - -import java.util.ArrayList; - -/** - * Created by root on 19.05.2018. - */ - -public class ReviewController implements ReviewActivity.ReviewCallback { - public static String fileName; - protected static ArrayList categories; - - @Override - public void onImageRefreshed(String fileName) { - ReviewController.fileName = fileName; - ReviewController.categories = new ArrayList<>(); - } - - public void onCategoriesRefreshed(ArrayList categories) { - ReviewController.categories = categories; - } - - @Override - public void onQuestionChanged() { - - } - - @Override - public void onSurveyFinished() { - - } - - @Override - public void onImproperImageReported() { - - } - - @Override - public void onLicenceViolationReported() { - - } - - @Override - public void onWrongCategoryReported() { - - } - - @Override - public void onThankSent() { - - } -} diff --git a/app/src/main/java/fr/free/nrw/commons/review/ReviewImageFragment.java b/app/src/main/java/fr/free/nrw/commons/review/ReviewImageFragment.java deleted file mode 100644 index bab8df6df..000000000 --- a/app/src/main/java/fr/free/nrw/commons/review/ReviewImageFragment.java +++ /dev/null @@ -1,92 +0,0 @@ -package fr.free.nrw.commons.review; - -import android.app.AlertDialog; -import android.os.Bundle; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.EditText; -import android.widget.TextView; - -import com.facebook.drawee.view.SimpleDraweeView; - -import java.util.ArrayList; - -import fr.free.nrw.commons.R; -import fr.free.nrw.commons.Utils; -import fr.free.nrw.commons.di.CommonsDaggerSupportFragment; - -/** - * Created by root on 19.05.2018. - */ - -public class ReviewImageFragment extends CommonsDaggerSupportFragment { - - public static final int SPAM = 0; - public static final int COPYRIGHT = 1; - public static final int CATEGORY = 2; - - private int position; - private String fileName; - private String catString; - private View catsView; - private SimpleDraweeView simpleDraweeView; - - public void update(int position, String fileName) { - this.position = position; - this.fileName = fileName; - - if (simpleDraweeView!=null) { - simpleDraweeView.setImageURI(Utils.makeThumbBaseUrl(fileName)); - } - } - - public void updateCategories(Iterable categories) { - catString = TextUtils.join(", ", categories); - if (catsView != null) { - ((TextView) catsView).setText(catString); - } - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - position = getArguments().getInt("position"); - View layoutView = inflater.inflate(R.layout.fragment_review_image, container, - false); - View textView = layoutView.findViewById(R.id.reviewQuestion); - catsView = layoutView.findViewById(R.id.reviewCategories); - String question; - switch(position) { - case COPYRIGHT: - question = getString(R.string.review_copyright); - break; - case CATEGORY: - question = getString(R.string.review_category); - catsView.setVisibility(View.VISIBLE); - break; - case SPAM: - question = getString(R.string.review_spam); - break; - default: - question = "How did we get here?"; - } - ((TextView) textView).setText(question); - simpleDraweeView = layoutView.findViewById(R.id.imageView); - - if (fileName != null) { - simpleDraweeView.setImageURI(Utils.makeThumbBaseUrl(fileName)); - } - if (catString != null) { - ((TextView) catsView).setText(catString); - } - return layoutView; - } - -} diff --git a/app/src/main/java/fr/free/nrw/commons/review/ReviewPagerAdapter.java b/app/src/main/java/fr/free/nrw/commons/review/ReviewPagerAdapter.java deleted file mode 100644 index 06d07c7c9..000000000 --- a/app/src/main/java/fr/free/nrw/commons/review/ReviewPagerAdapter.java +++ /dev/null @@ -1,51 +0,0 @@ -package fr.free.nrw.commons.review; - -import android.os.Bundle; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentStatePagerAdapter; - -/** - * Created by nes on 19.05.2018. - */ - -public class ReviewPagerAdapter extends FragmentStatePagerAdapter { - private int currentPosition; - ReviewImageFragment[] reviewImageFragments; - - - public ReviewPagerAdapter(FragmentManager fm) { - super(fm); - reviewImageFragments = new ReviewImageFragment[] { - new ReviewImageFragment(), - new ReviewImageFragment(), - new ReviewImageFragment() - }; - } - - @Override - public int getCount() { - return 3; - } - - public void updateFilename() { - for (int i = 0; i < getCount(); i++) { - ReviewImageFragment fragment = reviewImageFragments[i]; - fragment.update(i, ReviewController.fileName); - } - } - - public void updateCategories() { - ReviewImageFragment categoryFragment = reviewImageFragments[ReviewImageFragment.CATEGORY]; - categoryFragment.updateCategories(ReviewController.categories); - } - - @Override - public Fragment getItem(int position) { - Bundle bundle = new Bundle(); - bundle.putInt("position", position); - reviewImageFragments[position].setArguments(bundle); - return reviewImageFragments[position]; - } - -} diff --git a/app/src/main/java/fr/free/nrw/commons/review/SendThankTask.java b/app/src/main/java/fr/free/nrw/commons/review/SendThankTask.java deleted file mode 100644 index 0f723217f..000000000 --- a/app/src/main/java/fr/free/nrw/commons/review/SendThankTask.java +++ /dev/null @@ -1,140 +0,0 @@ -package fr.free.nrw.commons.review; - -import android.app.NotificationManager; -import android.content.Context; -import android.os.AsyncTask; -import android.support.v4.app.NotificationCompat; -import android.view.Gravity; -import android.widget.Toast; - -import javax.inject.Inject; - -import fr.free.nrw.commons.Media; -import fr.free.nrw.commons.R; -import fr.free.nrw.commons.auth.SessionManager; -import fr.free.nrw.commons.di.ApplicationlessInjection; -import fr.free.nrw.commons.mwapi.MediaWikiApi; -import timber.log.Timber; - -import static android.support.v4.app.NotificationCompat.DEFAULT_ALL; -import static android.support.v4.app.NotificationCompat.PRIORITY_HIGH; - -// example code: -// -// media = new Media("File:Iru.png"); -// Observable.fromCallable(() -> mwApi.firstRevisionOfFile(media.getFilename())) -// .subscribeOn(Schedulers.io()) -// .observeOn(AndroidSchedulers.mainThread()) -// .subscribe(revision -> { -// SendThankTask task = new SendThankTask(getActivity(), media, revision); -// task.execute(); -// }); - -public class SendThankTask extends AsyncTask { - - @Inject - MediaWikiApi mwApi; - @Inject - SessionManager sessionManager; - - public static final int NOTIFICATION_SEND_THANK = 0x102; - - private NotificationManager notificationManager; - private NotificationCompat.Builder notificationBuilder; - private Context context; - private Media media; - private String revision; - - public SendThankTask(Context context, Media media, String revision){ - this.context = context; - this.media = media; - this.revision = revision; - } - - @Override - protected void onPreExecute(){ - ApplicationlessInjection - .getInstance(context.getApplicationContext()) - .getCommonsApplicationComponent() - .inject(this); - - notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); - notificationBuilder = new NotificationCompat.Builder(context); - Toast toast = new Toast(context); - toast.setGravity(Gravity.CENTER,0,0); - toast = Toast.makeText(context, context.getString(R.string.send_thank_toast, media.getDisplayTitle()), Toast.LENGTH_SHORT); - toast.show(); - } - - @Override - protected Boolean doInBackground(Void ...voids) { - publishProgress(0); - - String editToken; - String authCookie; - - authCookie = sessionManager.getAuthCookie(); - mwApi.setAuthCookie(authCookie); - - try { - editToken = mwApi.getEditToken(); - if (editToken.equals("+\\")) { - return false; - } - publishProgress(1); - - mwApi.thank(editToken, revision); - - publishProgress(2); - } - catch (Exception e) { - Timber.d(e.getMessage()); - return false; - } - return true; - } - - @Override - protected void onProgressUpdate (Integer... values){ - super.onProgressUpdate(values); - - int[] messages = new int[]{R.string.getting_edit_token, R.string.send_thank_send}; - String message = ""; - if (0 < values[0] && values[0] < messages.length) { - message = context.getString(messages[values[0]]); - } - - notificationBuilder.setContentTitle(context.getString(R.string.send_thank_notification_title)) - .setStyle(new NotificationCompat.BigTextStyle() - .bigText(message)) - .setSmallIcon(R.drawable.ic_launcher) - .setProgress(messages.length, values[0], false) - .setOngoing(true); - notificationManager.notify(NOTIFICATION_SEND_THANK, notificationBuilder.build()); - } - - @Override - protected void onPostExecute(Boolean result) { - String message = ""; - String title = ""; - - if (result){ - title = context.getString(R.string.send_thank_success_title); - message = context.getString(R.string.send_thank_success_message, media.getDisplayTitle()); - } - else { - title = context.getString(R.string.send_thank_failure_title); - message = context.getString(R.string.send_thank_failure_message, media.getDisplayTitle()); - } - - notificationBuilder.setDefaults(DEFAULT_ALL) - .setContentTitle(title) - .setStyle(new NotificationCompat.BigTextStyle() - .bigText(message)) - .setSmallIcon(R.drawable.ic_launcher) - .setProgress(0,0,false) - .setOngoing(false) - .setPriority(PRIORITY_HIGH); - notificationManager.notify(NOTIFICATION_SEND_THANK, notificationBuilder.build()); - } -} \ No newline at end of file diff --git a/app/src/main/java/fr/free/nrw/commons/theme/NavigationBaseActivity.java b/app/src/main/java/fr/free/nrw/commons/theme/NavigationBaseActivity.java index 8fc12d068..4a7322b57 100644 --- a/app/src/main/java/fr/free/nrw/commons/theme/NavigationBaseActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/theme/NavigationBaseActivity.java @@ -30,7 +30,6 @@ import fr.free.nrw.commons.contributions.ContributionsActivity; import fr.free.nrw.commons.category.CategoryImagesActivity; import fr.free.nrw.commons.nearby.NearbyActivity; import fr.free.nrw.commons.notification.NotificationActivity; -import fr.free.nrw.commons.review.ReviewActivity; import fr.free.nrw.commons.settings.SettingsActivity; import timber.log.Timber; @@ -161,11 +160,6 @@ public abstract class NavigationBaseActivity extends BaseActivity drawerLayout.closeDrawer(navigationView); CategoryImagesActivity.startYourself(this, getString(R.string.title_activity_featured_images), FEATURED_IMAGES_CATEGORY); return true; - - case R.id.action_review: - drawerLayout.closeDrawer(navigationView); - ReviewActivity.startYourself(this, getString(R.string.title_activity_review)); - return true; default: Timber.e("Unknown option [%s] selected from the navigation menu", itemId); return false; diff --git a/app/src/main/java/fr/free/nrw/commons/utils/MediaDataExtractorUtil.java b/app/src/main/java/fr/free/nrw/commons/utils/MediaDataExtractorUtil.java deleted file mode 100644 index 63421a8e4..000000000 --- a/app/src/main/java/fr/free/nrw/commons/utils/MediaDataExtractorUtil.java +++ /dev/null @@ -1,28 +0,0 @@ -package fr.free.nrw.commons.utils; - -import java.util.ArrayList; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class MediaDataExtractorUtil { - - /** - * We could fetch all category links from API, but we actually only want the ones - * directly in the page source so they're editable. In the future this may change. - * - * @param source wikitext source code - */ - public static ArrayList extractCategories(String source) { - ArrayList categories = new ArrayList<>(); - Pattern regex = Pattern.compile("\\[\\[\\s*Category\\s*:([^]]*)\\s*\\]\\]", Pattern.CASE_INSENSITIVE); - Matcher matcher = regex.matcher(source); - while (matcher.find()) { - String cat = matcher.group(1).trim(); - categories.add(cat); - } - - return categories; - } - - -} diff --git a/app/src/main/res/drawable/ic_check_black_24dp.xml b/app/src/main/res/drawable/ic_check_black_24dp.xml deleted file mode 100644 index 3c728c59f..000000000 --- a/app/src/main/res/drawable/ic_check_black_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_refresh_black_24dp.xml b/app/src/main/res/drawable/ic_refresh_black_24dp.xml deleted file mode 100644 index 8229a9a64..000000000 --- a/app/src/main/res/drawable/ic_refresh_black_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/tab_indicator_default.xml b/app/src/main/res/drawable/tab_indicator_default.xml deleted file mode 100644 index 341f4d706..000000000 --- a/app/src/main/res/drawable/tab_indicator_default.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/tab_indicator_selected.xml b/app/src/main/res/drawable/tab_indicator_selected.xml deleted file mode 100644 index 41c1bcf73..000000000 --- a/app/src/main/res/drawable/tab_indicator_selected.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/tab_selector.xml b/app/src/main/res/drawable/tab_selector.xml deleted file mode 100644 index 001747c31..000000000 --- a/app/src/main/res/drawable/tab_selector.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_review.xml b/app/src/main/res/layout/activity_review.xml deleted file mode 100644 index a0b813f55..000000000 --- a/app/src/main/res/layout/activity_review.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_review_image.xml b/app/src/main/res/layout/fragment_review_image.xml deleted file mode 100644 index 7abf88f01..000000000 --- a/app/src/main/res/layout/fragment_review_image.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - -