protectedTypes = new ArrayList<>();
55 | protectedTypes.add(R.id.createArticle);
56 | return protectedTypes;
57 | }
58 |
59 | }
60 |
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/post/ArticleActivity.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.post;
2 |
3 | import android.os.Bundle;
4 | import android.text.TextUtils;
5 | import android.view.MenuItem;
6 | import com.indieweb.indigenous.R;
7 |
8 | public class ArticleActivity extends BaseCreate {
9 |
10 | @Override
11 | protected void onCreate(Bundle savedInstanceState) {
12 | canAddMedia = true;
13 | canAddLocation = true;
14 | addCounter = true;
15 | setContentView(R.layout.activity_article);
16 | super.onCreate(savedInstanceState);
17 | setTitle(post.getMainPostTitle());
18 | }
19 |
20 | @Override
21 | public void onPostButtonClick(MenuItem item) {
22 | boolean hasErrors = false;
23 |
24 | if (saveAsDraft != null && saveAsDraft.isChecked()) {
25 | saveDraft("article", null);
26 | return;
27 | }
28 |
29 | if (post.supports(Post.FEATURE_TITLE) && TextUtils.isEmpty(title.getText())) {
30 | hasErrors = true;
31 | title.setError(getString(R.string.required_field));
32 | }
33 |
34 | if (TextUtils.isEmpty(body.getText())) {
35 | hasErrors = true;
36 | body.setError(getString(R.string.required_field));
37 | }
38 |
39 | if (!hasErrors) {
40 | sendBasePost(item);
41 | }
42 | }
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/post/BookmarkActivity.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.post;
2 |
3 | import android.os.Bundle;
4 | import android.text.TextUtils;
5 | import android.view.MenuItem;
6 | import com.indieweb.indigenous.R;
7 |
8 | public class BookmarkActivity extends BaseCreate {
9 |
10 | @Override
11 | protected void onCreate(Bundle savedInstanceState) {
12 | urlPostKey = "bookmark-of";
13 | autoSubmit = "pref_key_share_bookmark_auto_submit";
14 | addCounter = true;
15 | setContentView(R.layout.activity_bookmark);
16 | super.onCreate(savedInstanceState);
17 | }
18 |
19 | @Override
20 | public void onPostButtonClick(MenuItem item) {
21 |
22 | if (saveAsDraft != null && saveAsDraft.isChecked()) {
23 | saveDraft("bookmark", null);
24 | return;
25 | }
26 |
27 | if (TextUtils.isEmpty(url.getText())) {
28 | url.setError(getString(R.string.required_field));
29 | } else {
30 | sendBasePost(item);
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/post/CheckinActivity.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.post;
2 |
3 | import android.os.Bundle;
4 | import android.view.MenuItem;
5 | import com.indieweb.indigenous.R;
6 |
7 | public class CheckinActivity extends BaseCreate {
8 |
9 | @Override
10 | protected void onCreate(Bundle savedInstanceState) {
11 | canAddMedia = true;
12 | canAddLocation = true;
13 | isCheckin = true;
14 | addCounter = true;
15 | setContentView(R.layout.activity_checkin);
16 | super.onCreate(savedInstanceState);
17 | if (!preparedDraft && !isTesting) {
18 | startLocationUpdates();
19 | }
20 | }
21 |
22 | @Override
23 | public void onPostButtonClick(MenuItem item) {
24 |
25 | if (saveAsDraft != null && saveAsDraft.isChecked()) {
26 | saveDraft("checkin", null);
27 | return;
28 | }
29 |
30 | sendBasePost(item);
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/post/GeocacheActivity.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.post;
2 |
3 | import android.os.Bundle;
4 | import android.view.MenuItem;
5 | import com.indieweb.indigenous.R;
6 | import com.indieweb.indigenous.model.Draft;
7 |
8 | public class GeocacheActivity extends BaseCreate {
9 |
10 | @Override
11 | protected void onCreate(Bundle savedInstanceState) {
12 | canAddMedia = true;
13 | canAddLocation = true;
14 | isCheckin = true;
15 | addCounter = true;
16 | setContentView(R.layout.activity_geocache);
17 | geocacheLogType = findViewById(R.id.geocacheLogType);
18 | super.onCreate(savedInstanceState);
19 | if (!preparedDraft && !isTesting) {
20 | startLocationUpdates();
21 | }
22 | }
23 |
24 | @Override
25 | public void onPostButtonClick(MenuItem item) {
26 |
27 | if (saveAsDraft != null && saveAsDraft.isChecked()) {
28 | Draft draft = new Draft();
29 | draft.setSpinner(geocacheLogType.getSelectedItem().toString());
30 | saveDraft("geocache", draft);
31 | return;
32 | }
33 |
34 | bodyParams.put("geocache-log-type", getResources().getStringArray(R.array.geocache_array_values)[geocacheLogType.getSelectedItemPosition()]);
35 | sendBasePost(item);
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/post/IssueActivity.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.post;
2 |
3 | import android.os.Bundle;
4 | import android.text.TextUtils;
5 | import android.view.MenuItem;
6 | import com.indieweb.indigenous.R;
7 |
8 | public class IssueActivity extends BaseCreate {
9 |
10 | @Override
11 | protected void onCreate(Bundle savedInstanceState) {
12 | urlPostKey = "in-reply-to";
13 | addCounter = true;
14 | canAddMedia = true;
15 | setContentView(R.layout.activity_issue);
16 | super.onCreate(savedInstanceState);
17 | }
18 |
19 | @Override
20 | public void onPostButtonClick(MenuItem item) {
21 | boolean hasErrors = false;
22 |
23 | if (saveAsDraft != null && saveAsDraft.isChecked()) {
24 | saveDraft("issue", null);
25 | return;
26 | }
27 |
28 | if (TextUtils.isEmpty(url.getText())) {
29 | hasErrors = true;
30 | url.setError(getString(R.string.required_field));
31 | }
32 |
33 | if (TextUtils.isEmpty(title.getText())) {
34 | hasErrors = true;
35 | title.setError(getString(R.string.required_field));
36 | }
37 |
38 | if (TextUtils.isEmpty(body.getText())) {
39 | hasErrors = true;
40 | body.setError(getString(R.string.required_field));
41 | }
42 |
43 | if (!hasErrors) {
44 | sendBasePost(item);
45 | }
46 | }
47 |
48 | }
49 |
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/post/LikeActivity.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.post;
2 |
3 | import android.os.Bundle;
4 | import android.text.TextUtils;
5 | import android.view.MenuItem;
6 | import com.indieweb.indigenous.R;
7 |
8 | public class LikeActivity extends BaseCreate {
9 |
10 |
11 | @Override
12 | protected void onCreate(Bundle savedInstanceState) {
13 | urlPostKey = "like-of";
14 | autoSubmit = "pref_key_share_like_auto_submit";
15 | setContentView(R.layout.activity_like);
16 | super.onCreate(savedInstanceState);
17 | }
18 |
19 | @Override
20 | public void onPostButtonClick(MenuItem item) {
21 |
22 | if (saveAsDraft != null && saveAsDraft.isChecked()) {
23 | saveDraft("like", null);
24 | return;
25 | }
26 |
27 | if (TextUtils.isEmpty(url.getText())) {
28 | url.setError(getString(R.string.required_field));
29 | } else {
30 | sendBasePost(item);
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/post/NoteActivity.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.post;
2 |
3 | import android.os.Bundle;
4 | import android.text.TextUtils;
5 | import android.view.MenuItem;
6 | import com.indieweb.indigenous.R;
7 |
8 | public class NoteActivity extends BaseCreate {
9 |
10 | @Override
11 | protected void onCreate(Bundle savedInstanceState) {
12 | canAddMedia = true;
13 | canAddLocation = true;
14 | addCounter = true;
15 | setContentView(R.layout.activity_note);
16 | super.onCreate(savedInstanceState);
17 | }
18 |
19 | @Override
20 | public void onPostButtonClick(MenuItem item) {
21 |
22 | if (saveAsDraft != null && saveAsDraft.isChecked()) {
23 | saveDraft("note", null);
24 | return;
25 | }
26 |
27 | if (TextUtils.isEmpty(body.getText())) {
28 | body.setError(getString(R.string.required_field));
29 | } else {
30 | sendBasePost(item);
31 | }
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/post/PostBase.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.post;
2 |
3 | import android.content.Context;
4 | import android.widget.MultiAutoCompleteTextView;
5 | import com.indieweb.indigenous.R;
6 | import com.indieweb.indigenous.model.User;
7 |
8 | abstract public class PostBase implements Post {
9 |
10 | private final Context context;
11 | private final User user;
12 |
13 | public PostBase(Context context, User user) {
14 | this.context = context;
15 | this.user = user;
16 | }
17 |
18 | public Context getContext() {
19 | return context;
20 | }
21 |
22 | public User getUser() {
23 | return user;
24 | }
25 |
26 | @Override
27 | public boolean supportsPostParam(String name) {
28 | return true;
29 | }
30 |
31 | @Override
32 | public boolean useMediaEndpoint() {
33 | return true;
34 | }
35 |
36 | @Override
37 | public String getPostParamName(String name) {
38 | return name;
39 | }
40 |
41 | @Override
42 | public void prepareTagsAutocomplete(MultiAutoCompleteTextView tags) {
43 | }
44 |
45 | @Override
46 | public void prepareContactsAutocomplete(MultiAutoCompleteTextView body) {
47 | }
48 |
49 | @Override
50 | public boolean hideUrlField() {
51 | return false;
52 | }
53 |
54 | @Override
55 | public String anonymousPostMessage() {
56 | return getContext().getString(R.string.no_anonymous_posting);
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/post/PostFactory.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.post;
2 |
3 | import android.content.Context;
4 | import androidx.annotation.NonNull;
5 | import com.indieweb.indigenous.indieweb.micropub.IndieWebPost;
6 | import com.indieweb.indigenous.mastodon.MastodonPost;
7 | import com.indieweb.indigenous.model.User;
8 | import com.indieweb.indigenous.pixelfed.PixelfedPost;
9 | import com.indieweb.indigenous.pleroma.PleromaPost;
10 |
11 | import static com.indieweb.indigenous.users.AuthActivity.*;
12 |
13 | public class PostFactory {
14 |
15 | @NonNull
16 | public static Post getPost(User user, Context context) {
17 | String type = "indieweb";
18 |
19 | if (user.isAuthenticated()) {
20 | if (user.getAccountType().equals(PIXELFED_ACCOUNT_TYPE)) {
21 | type = "pixelfed";
22 | }
23 | if (user.getAccountType().equals(MASTODON_ACCOUNT_TYPE)) {
24 | type = "mastodon";
25 | }
26 | if (user.getAccountType().equals(PLEROMA_ACCOUNT_TYPE)) {
27 | type = "pleroma";
28 | }
29 | }
30 |
31 | switch (type) {
32 | case "indieweb":
33 | return new IndieWebPost(context, user);
34 | case "pixelfed":
35 | return new PixelfedPost(context, user);
36 | case "pleroma":
37 | return new PleromaPost(context, user);
38 | case "mastodon":
39 | return new MastodonPost(context, user);
40 | }
41 |
42 | return null;
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/post/ReadActivity.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.post;
2 |
3 | import android.os.Bundle;
4 | import android.text.TextUtils;
5 | import android.view.MenuItem;
6 | import com.indieweb.indigenous.R;
7 | import com.indieweb.indigenous.model.Draft;
8 | import com.indieweb.indigenous.util.Preferences;
9 |
10 | public class ReadActivity extends BaseCreate {
11 |
12 | @Override
13 | protected void onCreate(Bundle savedInstanceState) {
14 | urlPostKey = "read-of";
15 | addCounter = true;
16 | setContentView(R.layout.activity_read);
17 | read = findViewById(R.id.read);
18 | super.onCreate(savedInstanceState);
19 | if (!preparedDraft) {
20 | read.setSelection(Preferences.getPreference(getApplicationContext(), "pref_key_read_default", 1));
21 | }
22 | }
23 |
24 | @Override
25 | public void onPostButtonClick(MenuItem item) {
26 |
27 | if (saveAsDraft != null && saveAsDraft.isChecked()) {
28 | Draft draft = new Draft();
29 | draft.setSpinner(read.getSelectedItem().toString());
30 | saveDraft("read", draft);
31 | return;
32 | }
33 |
34 | if (TextUtils.isEmpty(url.getText())) {
35 | url.setError(getString(R.string.required_field));
36 | } else {
37 | if (read.getSelectedItemPosition() != 0) {
38 | String readStatus = getResources().getStringArray(R.array.read_array_post_values)[read.getSelectedItemPosition()];
39 | bodyParams.put("read-status", readStatus);
40 | }
41 | sendBasePost(item);
42 | }
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/post/ReplyActivity.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.post;
2 |
3 | import android.os.Bundle;
4 | import android.text.TextUtils;
5 | import android.view.MenuItem;
6 | import com.indieweb.indigenous.R;
7 |
8 | public class ReplyActivity extends BaseCreate {
9 |
10 | @Override
11 | protected void onCreate(Bundle savedInstanceState) {
12 | urlPostKey = "in-reply-to";
13 | addCounter = true;
14 | canAddMedia = true;
15 | setContentView(R.layout.activity_reply);
16 | super.onCreate(savedInstanceState);
17 | }
18 |
19 | @Override
20 | public void onPostButtonClick(MenuItem item) {
21 | boolean hasErrors = false;
22 |
23 | if (saveAsDraft != null && saveAsDraft.isChecked()) {
24 | saveDraft("reply", null);
25 | return;
26 | }
27 |
28 | if (TextUtils.isEmpty(url.getText())) {
29 | hasErrors = true;
30 | url.setError(getString(R.string.required_field));
31 | }
32 |
33 | if (TextUtils.isEmpty(body.getText())) {
34 | hasErrors = true;
35 | body.setError(getString(R.string.required_field));
36 | }
37 |
38 | if (!hasErrors) {
39 | sendBasePost(item);
40 | }
41 | }
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/post/RepostActivity.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.post;
2 |
3 | import android.os.Bundle;
4 | import android.text.TextUtils;
5 | import android.view.MenuItem;
6 | import com.indieweb.indigenous.R;
7 |
8 | public class RepostActivity extends BaseCreate {
9 |
10 | @Override
11 | protected void onCreate(Bundle savedInstanceState) {
12 | urlPostKey = "repost-of";
13 | autoSubmit = "pref_key_share_repost_auto_submit";
14 | addCounter = true;
15 | setContentView(R.layout.activity_repost);
16 | super.onCreate(savedInstanceState);
17 | }
18 |
19 | @Override
20 | public void onPostButtonClick(MenuItem item) {
21 |
22 | if (saveAsDraft != null && saveAsDraft.isChecked()) {
23 | saveDraft("repost", null);
24 | return;
25 | }
26 |
27 | if (TextUtils.isEmpty(url.getText())) {
28 | url.setError(getString(R.string.required_field));
29 | } else {
30 | sendBasePost(item);
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/post/RsvpActivity.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.post;
2 |
3 | import android.os.Bundle;
4 | import android.text.TextUtils;
5 | import android.view.MenuItem;
6 | import com.indieweb.indigenous.R;
7 | import com.indieweb.indigenous.model.Draft;
8 |
9 | public class RsvpActivity extends BaseCreate {
10 |
11 | @Override
12 | protected void onCreate(Bundle savedInstanceState) {
13 | urlPostKey = "in-reply-to";
14 | addCounter = true;
15 | setContentView(R.layout.activity_rsvp);
16 | rsvp = findViewById(R.id.rsvp);
17 | super.onCreate(savedInstanceState);
18 | }
19 |
20 | @Override
21 | public void onPostButtonClick(MenuItem item) {
22 |
23 | if (saveAsDraft != null && saveAsDraft.isChecked()) {
24 | Draft draft = new Draft();
25 | draft.setSpinner(rsvp.getSelectedItem().toString());
26 | saveDraft("rsvp", draft);
27 | return;
28 | }
29 |
30 | if (TextUtils.isEmpty(url.getText())) {
31 | url.setError(getString(R.string.required_field));
32 | } else {
33 | bodyParams.put("rsvp", getResources().getStringArray(R.array.rsvp_array_values)[rsvp.getSelectedItemPosition()]);
34 | sendBasePost(item);
35 | }
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/post/SendPostInterface.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.post;
2 |
3 | import android.view.MenuItem;
4 |
5 | public interface SendPostInterface {
6 |
7 | /**
8 | * Onclick method that is called when hitting the send post button.
9 | *
10 | * Add extra params to send in the post request into bodyParams.
11 | *
12 | * Call sendBasePost(item); at the end to send the request.
13 | */
14 | @SuppressWarnings("unused")
15 | void onPostButtonClick(MenuItem item);
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/post/UploadActivity.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.post;
2 |
3 | import android.os.Bundle;
4 | import android.view.MenuItem;
5 | import android.view.View;
6 | import com.google.android.material.snackbar.Snackbar;
7 | import com.indieweb.indigenous.R;
8 | import com.indieweb.indigenous.util.Preferences;
9 |
10 | public class UploadActivity extends BaseCreate {
11 |
12 | @Override
13 | protected void onCreate(Bundle savedInstanceState) {
14 | isMediaRequest = true;
15 | finishActivity = false;
16 | canAddMedia = true;
17 | setContentView(R.layout.activity_upload);
18 | super.onCreate(savedInstanceState);
19 |
20 | if (title != null && Preferences.getPreference(getApplicationContext(), "pref_key_media_name", false)) {
21 | title.setVisibility(View.VISIBLE);
22 | }
23 | }
24 |
25 | @Override
26 | public void onPostButtonClick(MenuItem item) {
27 | if (image.size() == 1 || video.size() == 1 || audio.size() == 1) {
28 | sendBasePost(item);
29 | } else {
30 | Snackbar.make(layout, getString(R.string.required_select_media), Snackbar.LENGTH_SHORT).show();
31 | }
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/post/VenueActivity.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.post;
2 |
3 | import android.os.Bundle;
4 | import android.view.MenuItem;
5 | import com.indieweb.indigenous.R;
6 |
7 | public class VenueActivity extends BaseCreate {
8 |
9 | @Override
10 | protected void onCreate(Bundle savedInstanceState) {
11 | canAddMedia = true;
12 | canAddLocation = true;
13 | isCheckin = true;
14 | addCounter = true;
15 | hType = "card";
16 | setContentView(R.layout.activity_venue);
17 | super.onCreate(savedInstanceState);
18 | if (!preparedDraft && !isTesting) {
19 | startLocationUpdates();
20 | }
21 | }
22 |
23 | @Override
24 | public void onPostButtonClick(MenuItem item) {
25 |
26 | if (saveAsDraft != null && saveAsDraft.isChecked()) {
27 | saveDraft("venue", null);
28 | return;
29 | }
30 |
31 | sendBasePost(item);
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/users/Auth.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.users;
2 |
3 | import android.widget.RelativeLayout;
4 | import com.indieweb.indigenous.model.User;
5 |
6 | public interface Auth {
7 |
8 | /**
9 | * Sync an account.
10 | *
11 | * @param layout The current layout
12 | */
13 | void syncAccount(RelativeLayout layout);
14 |
15 | /**
16 | * Revoke a token.
17 | *
18 | * @param user The current user.
19 | */
20 | void revokeToken(User user);
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/users/AuthBase.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.users;
2 |
3 | import android.content.Context;
4 | import com.indieweb.indigenous.model.User;
5 |
6 | abstract public class AuthBase implements Auth {
7 |
8 | private final Context context;
9 | private final User user;
10 |
11 | public AuthBase(Context context, User user) {
12 | this.context = context;
13 | this.user = user;
14 | }
15 |
16 | public Context getContext() {
17 | return context;
18 | }
19 |
20 | public User getUser() {
21 | return user;
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/users/AuthFactory.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.users;
2 |
3 | import android.content.Context;
4 | import androidx.annotation.NonNull;
5 | import com.indieweb.indigenous.indieweb.indieauth.IndiewebAuth;
6 | import com.indieweb.indigenous.mastodon.MastodonAuth;
7 | import com.indieweb.indigenous.model.User;
8 | import com.indieweb.indigenous.pixelfed.PixelfedAuth;
9 | import com.indieweb.indigenous.pleroma.PleromaAuth;
10 |
11 | import static com.indieweb.indigenous.users.AuthActivity.*;
12 |
13 | public class AuthFactory {
14 |
15 | @NonNull
16 | public static Auth getAuth(User user, Context context) {
17 | String type = "indieweb";
18 |
19 | if (user.isAuthenticated()) {
20 | if (user.getAccountType().equals(PIXELFED_ACCOUNT_TYPE)) {
21 | type = "pixelfed";
22 | }
23 | if (user.getAccountType().equals(MASTODON_ACCOUNT_TYPE)) {
24 | type = "mastodon";
25 | }
26 | if (user.getAccountType().equals(PLEROMA_ACCOUNT_TYPE)) {
27 | type = "pleroma";
28 | }
29 | }
30 |
31 | switch (type) {
32 | case "indieweb":
33 | return new IndiewebAuth(context, user);
34 | case "pixelfed":
35 | return new PixelfedAuth(context, user);
36 | case "pleroma":
37 | return new PleromaAuth(context, user);
38 | case "mastodon":
39 | return new MastodonAuth(context, user);
40 | }
41 |
42 | return null;
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/users/AuthenticatorBase.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.users;
2 |
3 | import android.accounts.AbstractAccountAuthenticator;
4 | import android.accounts.Account;
5 | import android.accounts.AccountAuthenticatorResponse;
6 | import android.content.Context;
7 | import android.os.Bundle;
8 |
9 | abstract public class AuthenticatorBase extends AbstractAccountAuthenticator {
10 |
11 | public AuthenticatorBase(Context context) {
12 | super(context);
13 | }
14 |
15 | @Override
16 | public Bundle editProperties(AccountAuthenticatorResponse response, String accountType) {
17 | throw new UnsupportedOperationException();
18 | }
19 |
20 | @Override
21 | public Bundle confirmCredentials(AccountAuthenticatorResponse response, Account account, Bundle options) {
22 | throw new UnsupportedOperationException();
23 | }
24 |
25 | @Override
26 | public Bundle getAuthToken(AccountAuthenticatorResponse response, Account account, String authTokenType, Bundle options) {
27 | throw new UnsupportedOperationException();
28 | }
29 |
30 | @Override
31 | public Bundle updateCredentials(AccountAuthenticatorResponse response, Account account, String authTokenType, Bundle options) {
32 | throw new UnsupportedOperationException();
33 | }
34 |
35 | @Override
36 | public Bundle hasFeatures(AccountAuthenticatorResponse response, Account account, String[] features) {
37 | throw new UnsupportedOperationException();
38 | }
39 |
40 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/util/VolleyRequestListener.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.util;
2 |
3 | import com.android.volley.VolleyError;
4 |
5 | public interface VolleyRequestListener {
6 |
7 | void OnSuccessRequest(String response);
8 |
9 | void OnFailureRequest(VolleyError error);
10 |
11 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/indieweb/indigenous/util/mf2/JsonList.java:
--------------------------------------------------------------------------------
1 | package com.indieweb.indigenous.util.mf2;
2 |
3 | import java.util.ArrayList;
4 |
5 | public class JsonList extends ArrayList