loading indicator and notfication attempt
This commit is contained in:
parent
255f69ad8f
commit
affdd3e4fb
@ -2,6 +2,8 @@
|
|||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools">
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
android:dataExtractionRules="@xml/data_extraction_rules"
|
android:dataExtractionRules="@xml/data_extraction_rules"
|
||||||
@ -30,5 +32,4 @@
|
|||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
@ -1,11 +1,13 @@
|
|||||||
package com.dowerx.quack.fragment;
|
package com.dowerx.quack.fragment;
|
||||||
|
|
||||||
|
import android.app.Dialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.view.Window;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
@ -25,7 +27,7 @@ import java.util.List;
|
|||||||
public class FeedFragment extends Fragment implements LoaderManager.LoaderCallbacks<List<Post>> {
|
public class FeedFragment extends Fragment implements LoaderManager.LoaderCallbacks<List<Post>> {
|
||||||
|
|
||||||
private RecyclerView recyclerView;
|
private RecyclerView recyclerView;
|
||||||
|
Dialog progress;
|
||||||
|
|
||||||
public FeedFragment() {
|
public FeedFragment() {
|
||||||
}
|
}
|
||||||
@ -62,6 +64,10 @@ public class FeedFragment extends Fragment implements LoaderManager.LoaderCallba
|
|||||||
@Override
|
@Override
|
||||||
public Loader<List<Post>> onCreateLoader(int id, @Nullable Bundle args) {
|
public Loader<List<Post>> onCreateLoader(int id, @Nullable Bundle args) {
|
||||||
Log.d(this.getClass().getName(), "onCreateLoader");
|
Log.d(this.getClass().getName(), "onCreateLoader");
|
||||||
|
progress = new Dialog(getContext());
|
||||||
|
progress.requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||||
|
progress.setContentView(R.layout.loading);
|
||||||
|
progress.show();
|
||||||
return new PostService.GetFeed(getContext());
|
return new PostService.GetFeed(getContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,6 +75,7 @@ public class FeedFragment extends Fragment implements LoaderManager.LoaderCallba
|
|||||||
public void onLoadFinished(@NonNull Loader<List<Post>> loader, List<Post> data) {
|
public void onLoadFinished(@NonNull Loader<List<Post>> loader, List<Post> data) {
|
||||||
Log.d(this.getClass().getName(), "onLoadFinished");
|
Log.d(this.getClass().getName(), "onLoadFinished");
|
||||||
Log.d(this.getClass().getName(), data.toString());
|
Log.d(this.getClass().getName(), data.toString());
|
||||||
|
progress.cancel();
|
||||||
recyclerView.setAdapter(new PostRecyclerViewAdapter(data, (SwitcherActivity)getContext()));
|
recyclerView.setAdapter(new PostRecyclerViewAdapter(data, (SwitcherActivity)getContext()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
package com.dowerx.quack.fragment;
|
package com.dowerx.quack.fragment;
|
||||||
|
|
||||||
|
import android.app.Dialog;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.view.Window;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
@ -20,6 +22,8 @@ import com.dowerx.quack.service.UserService;
|
|||||||
|
|
||||||
public class ProfileFragment extends Fragment implements LoaderManager.LoaderCallbacks<User> {
|
public class ProfileFragment extends Fragment implements LoaderManager.LoaderCallbacks<User> {
|
||||||
|
|
||||||
|
private Dialog progress;
|
||||||
|
|
||||||
private static final String ID = "id";
|
private static final String ID = "id";
|
||||||
|
|
||||||
private String id;
|
private String id;
|
||||||
@ -60,11 +64,16 @@ public class ProfileFragment extends Fragment implements LoaderManager.LoaderCal
|
|||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Loader<User> onCreateLoader(int id, @Nullable Bundle args) {
|
public Loader<User> onCreateLoader(int id, @Nullable Bundle args) {
|
||||||
|
progress = new Dialog(getContext());
|
||||||
|
progress.requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||||
|
progress.setContentView(R.layout.loading);
|
||||||
|
progress.show();
|
||||||
return new UserService.GetUserById(getContext(), this.id);
|
return new UserService.GetUserById(getContext(), this.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoadFinished(@NonNull Loader<User> loader, User data) {
|
public void onLoadFinished(@NonNull Loader<User> loader, User data) {
|
||||||
|
progress.cancel();
|
||||||
((TextView)view.findViewById(R.id.profile_username)).setText(data.getUsername());
|
((TextView)view.findViewById(R.id.profile_username)).setText(data.getUsername());
|
||||||
getParentFragmentManager()
|
getParentFragmentManager()
|
||||||
.beginTransaction()
|
.beginTransaction()
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
package com.dowerx.quack.fragment;
|
package com.dowerx.quack.fragment;
|
||||||
|
|
||||||
|
import android.app.Dialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.view.Window;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
@ -24,6 +26,8 @@ import java.util.List;
|
|||||||
|
|
||||||
public class SearchFragment extends Fragment implements LoaderManager.LoaderCallbacks<List<User>> {
|
public class SearchFragment extends Fragment implements LoaderManager.LoaderCallbacks<List<User>> {
|
||||||
|
|
||||||
|
private Dialog progress;
|
||||||
|
|
||||||
private RecyclerView recyclerView;
|
private RecyclerView recyclerView;
|
||||||
private EditText query;
|
private EditText query;
|
||||||
|
|
||||||
@ -68,11 +72,16 @@ public class SearchFragment extends Fragment implements LoaderManager.LoaderCall
|
|||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Loader<List<User>> onCreateLoader(int id, @Nullable Bundle args) {
|
public Loader<List<User>> onCreateLoader(int id, @Nullable Bundle args) {
|
||||||
|
progress = new Dialog(getContext());
|
||||||
|
progress.requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||||
|
progress.setContentView(R.layout.loading);
|
||||||
|
progress.show();
|
||||||
return new UserService.SearchUsername(query.getText().toString(), getContext());
|
return new UserService.SearchUsername(query.getText().toString(), getContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoadFinished(@NonNull Loader<List<User>> loader, List<User> data) {
|
public void onLoadFinished(@NonNull Loader<List<User>> loader, List<User> data) {
|
||||||
|
progress.cancel();
|
||||||
recyclerView.setAdapter(new UserRecyclerViewAdapter(data, (SwitcherActivity) getContext()));
|
recyclerView.setAdapter(new UserRecyclerViewAdapter(data, (SwitcherActivity) getContext()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,10 +1,20 @@
|
|||||||
package com.dowerx.quack.service;
|
package com.dowerx.quack.service;
|
||||||
|
|
||||||
|
import android.Manifest;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
import android.app.NotificationManager;
|
||||||
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
|
import android.os.Build;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.annotation.RequiresApi;
|
||||||
|
import androidx.core.app.ActivityCompat;
|
||||||
|
import androidx.core.app.NotificationCompat;
|
||||||
|
|
||||||
|
import com.dowerx.quack.R;
|
||||||
import com.dowerx.quack.activity.MainActivity;
|
import com.dowerx.quack.activity.MainActivity;
|
||||||
import com.dowerx.quack.activity.SwitcherActivity;
|
import com.dowerx.quack.activity.SwitcherActivity;
|
||||||
import com.google.android.gms.tasks.Tasks;
|
import com.google.android.gms.tasks.Tasks;
|
||||||
@ -85,6 +95,7 @@ public class AuthService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequiresApi(api = Build.VERSION_CODES.TIRAMISU)
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(Boolean result) {
|
protected void onPostExecute(Boolean result) {
|
||||||
if (result) {
|
if (result) {
|
||||||
@ -92,6 +103,22 @@ public class AuthService {
|
|||||||
toast.setText("succesful register");
|
toast.setText("succesful register");
|
||||||
toast.setDuration(Toast.LENGTH_LONG);
|
toast.setDuration(Toast.LENGTH_LONG);
|
||||||
toast.show();
|
toast.show();
|
||||||
|
|
||||||
|
NotificationCompat.Builder builder = new NotificationCompat.Builder(activity.getApplicationContext(), "register")
|
||||||
|
.setSmallIcon(R.mipmap.ic_launcher_round)
|
||||||
|
.setContentTitle("Welcome to Quack!")
|
||||||
|
.setContentText("Thank you for registering!")
|
||||||
|
.setPriority(NotificationCompat.PRIORITY_LOW);
|
||||||
|
|
||||||
|
if (ActivityCompat.checkSelfPermission(activity.getApplicationContext(), Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) {
|
||||||
|
String[] permissions = new String[1];
|
||||||
|
permissions[0] = Manifest.permission.POST_NOTIFICATIONS;
|
||||||
|
ActivityCompat.requestPermissions(activity, permissions, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
NotificationManager manager = (NotificationManager) activity.getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
|
||||||
|
manager.notify(0, builder.build());
|
||||||
|
|
||||||
activity.startActivity(new Intent(activity, MainActivity.class));
|
activity.startActivity(new Intent(activity, MainActivity.class));
|
||||||
} else {
|
} else {
|
||||||
Toast toast = new Toast(activity.getBaseContext());
|
Toast toast = new Toast(activity.getBaseContext());
|
||||||
|
@ -71,7 +71,6 @@ public class PostService {
|
|||||||
} catch (ExecutionException | InterruptedException e) {
|
} catch (ExecutionException | InterruptedException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
return posts;
|
return posts;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
11
app/src/main/res/layout/loading.xml
Normal file
11
app/src/main/res/layout/loading.xml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.cardview.widget.CardView
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
<ProgressBar
|
||||||
|
android:id="@+id/progressBar"
|
||||||
|
style="?android:attr/progressBarStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
</androidx.cardview.widget.CardView>
|
Loading…
Reference in New Issue
Block a user