diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2860acff..b317cb1f 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -13,7 +13,7 @@
android:roundIcon="@mipmap/app_logo_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
-
+
diff --git a/app/src/main/assets/fonts/manroperegular.ttf b/app/src/main/assets/fonts/manroperegular.ttf
new file mode 100644
index 00000000..53627a0c
Binary files /dev/null and b/app/src/main/assets/fonts/manroperegular.ttf differ
diff --git a/app/src/main/res/font/roboto.ttf b/app/src/main/assets/fonts/roboto.ttf
similarity index 100%
rename from app/src/main/res/font/roboto.ttf
rename to app/src/main/assets/fonts/roboto.ttf
diff --git a/app/src/main/res/font/sourcecodeproregular.ttf b/app/src/main/assets/fonts/sourcecodeproregular.ttf
similarity index 100%
rename from app/src/main/res/font/sourcecodeproregular.ttf
rename to app/src/main/assets/fonts/sourcecodeproregular.ttf
diff --git a/app/src/main/java/org/mian/gitnex/activities/BaseActivity.java b/app/src/main/java/org/mian/gitnex/activities/BaseActivity.java
new file mode 100644
index 00000000..db146eda
--- /dev/null
+++ b/app/src/main/java/org/mian/gitnex/activities/BaseActivity.java
@@ -0,0 +1,61 @@
+package org.mian.gitnex.activities;
+
+import android.os.Bundle;
+import androidx.appcompat.app.AppCompatActivity;
+import org.mian.gitnex.helpers.FontsOverride;
+import org.mian.gitnex.util.TinyDB;
+
+/**
+ * Author M M Arif
+ */
+
+public abstract class BaseActivity extends AppCompatActivity {
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+
+ super.onCreate(savedInstanceState);
+ setContentView(getLayoutResourceId());
+
+ final TinyDB tinyDb = new TinyDB(getApplicationContext());
+
+ if(tinyDb.getInt("customFontId") == 0) {
+
+ FontsOverride.setDefaultFont(this, "DEFAULT", "fonts/roboto.ttf");
+ FontsOverride.setDefaultFont(this, "MONOSPACE", "fonts/roboto.ttf");
+ FontsOverride.setDefaultFont(this, "SERIF", "fonts/roboto.ttf");
+ FontsOverride.setDefaultFont(this, "SANS_SERIF", "fonts/roboto.ttf");
+
+ }
+ else if (tinyDb.getInt("customFontId") == 1) {
+
+ FontsOverride.setDefaultFont(this, "DEFAULT", "fonts/manroperegular.ttf");
+ FontsOverride.setDefaultFont(this, "MONOSPACE", "fonts/manroperegular.ttf");
+ FontsOverride.setDefaultFont(this, "SERIF", "fonts/manroperegular.ttf");
+ FontsOverride.setDefaultFont(this, "SANS_SERIF", "fonts/manroperegular.ttf");
+
+ }
+ else if (tinyDb.getInt("customFontId") == 2) {
+
+ FontsOverride.setDefaultFont(this, "DEFAULT", "fonts/sourcecodeproregular.ttf");
+ FontsOverride.setDefaultFont(this, "MONOSPACE", "fonts/sourcecodeproregular.ttf");
+ FontsOverride.setDefaultFont(this, "SERIF", "fonts/sourcecodeproregular.ttf");
+ FontsOverride.setDefaultFont(this, "SANS_SERIF", "fonts/sourcecodeproregular.ttf");
+
+ }
+ else {
+
+ FontsOverride.setDefaultFont(this, "DEFAULT", "fonts/roboto.ttf");
+ FontsOverride.setDefaultFont(this, "MONOSPACE", "fonts/roboto.ttf");
+ FontsOverride.setDefaultFont(this, "SERIF", "fonts/roboto.ttf");
+ FontsOverride.setDefaultFont(this, "SANS_SERIF", "fonts/roboto.ttf");
+
+ }
+
+ }
+
+ protected abstract int getLayoutResourceId();
+
+}
+
+
diff --git a/app/src/main/java/org/mian/gitnex/activities/IssueDetailActivity.java b/app/src/main/java/org/mian/gitnex/activities/IssueDetailActivity.java
index 7618faed..8873a6ad 100644
--- a/app/src/main/java/org/mian/gitnex/activities/IssueDetailActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/IssueDetailActivity.java
@@ -132,6 +132,8 @@ public class IssueDetailActivity extends AppCompatActivity {
assigneesLayout = findViewById(R.id.frameAssignees);
Toolbar toolbar = findViewById(R.id.toolbar);
+ TextView toolbarTitle = toolbar.findViewById(R.id.toolbar_title);
+
setSupportActionBar(toolbar);
Objects.requireNonNull(getSupportActionBar()).setTitle(repoName);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
@@ -158,6 +160,31 @@ public class IssueDetailActivity extends AppCompatActivity {
}
});
+ Typeface myTypeface;
+ if(tinyDb.getInt("customFontId") == 0) {
+
+ myTypeface = Typeface.createFromAsset(Objects.requireNonNull(getApplicationContext()).getAssets(), "fonts/roboto.ttf");
+
+ }
+ else if (tinyDb.getInt("customFontId") == 1) {
+
+ myTypeface = Typeface.createFromAsset(Objects.requireNonNull(getApplicationContext()).getAssets(), "fonts/manroperegular.ttf");
+
+ }
+ else if (tinyDb.getInt("customFontId") == 2) {
+
+ myTypeface = Typeface.createFromAsset(Objects.requireNonNull(getApplicationContext()).getAssets(), "fonts/sourcecodeproregular.ttf");
+
+ }
+ else {
+
+ myTypeface = Typeface.createFromAsset(Objects.requireNonNull(getApplicationContext()).getAssets(), "fonts/roboto.ttf");
+
+ }
+
+ toolbarTitle.setTypeface(myTypeface);
+ toolbarTitle.setText(repoName);
+
getSingleIssue(instanceUrl, instanceToken, repoOwner, repoName, issueIndex, loginUid);
fetchDataAsync(instanceUrl, instanceToken, repoOwner, repoName, issueIndex, loginUid);
diff --git a/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java b/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java
index 7a4e8a07..2c858632 100644
--- a/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/LoginActivity.java
@@ -20,7 +20,6 @@ import android.widget.Spinner;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
-import androidx.appcompat.app.AppCompatActivity;
import com.tooltip.Tooltip;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
@@ -44,7 +43,7 @@ import retrofit2.Callback;
* Author M M Arif
*/
-public class LoginActivity extends AppCompatActivity implements View.OnClickListener {
+public class LoginActivity extends BaseActivity implements View.OnClickListener {
private Button loginButton;
private EditText instanceUrlET, loginUidET, loginPassword, otpCode, loginTokenCode;
@@ -55,10 +54,14 @@ public class LoginActivity extends AppCompatActivity implements View.OnClickList
private String device_id = "token";
@Override
- protected void onCreate(Bundle savedInstanceState) {
+ protected int getLayoutResourceId(){
+ return R.layout.activity_login;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_login);
TinyDB tinyDb = new TinyDB(getApplicationContext());
boolean connToInternet = AppUtil.haveNetworkConnection(getApplicationContext());
diff --git a/app/src/main/java/org/mian/gitnex/activities/MainActivity.java b/app/src/main/java/org/mian/gitnex/activities/MainActivity.java
index 349a85bf..51f3a4e3 100644
--- a/app/src/main/java/org/mian/gitnex/activities/MainActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/MainActivity.java
@@ -8,7 +8,9 @@ import com.google.android.material.navigation.NavigationView;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.appcompat.app.ActionBarDrawerToggle;
-import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import android.graphics.Typeface;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
@@ -45,17 +47,25 @@ import retrofit2.Callback;
* Author M M Arif
*/
-public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
+public class MainActivity extends BaseActivity implements NavigationView.OnNavigationItemSelectedListener {
private DrawerLayout drawer;
private TextView userFullName;
private TextView userEmail;
private ImageView userAvatar;
+ private TextView toolbarTitle;
final Context ctx = this;
+ private Typeface myTypeface;
@Override
- protected void onCreate(Bundle savedInstanceState) {
+ protected int getLayoutResourceId(){
+ return R.layout.activity_main;
+ }
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+
+ super.onCreate(savedInstanceState);
final TinyDB tinyDb = new TinyDB(getApplicationContext());
tinyDb.putBoolean("noConnection", false);
//userAvatar = findViewById(R.id.userAvatar);
@@ -86,17 +96,62 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
boolean connToInternet = AppUtil.haveNetworkConnection(getApplicationContext());
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
-
if(!tinyDb.getBoolean("loggedInMode")) {
logout();
return;
}
androidx.appcompat.widget.Toolbar toolbar = findViewById(R.id.toolbar);
+ toolbarTitle = toolbar.findViewById(R.id.toolbar_title);
+
+ if(tinyDb.getInt("customFontId") == 0) {
+
+ myTypeface = Typeface.createFromAsset(getAssets(), "fonts/roboto.ttf");
+
+ }
+ else if (tinyDb.getInt("customFontId") == 1) {
+
+ myTypeface = Typeface.createFromAsset(getAssets(), "fonts/manroperegular.ttf");
+
+ }
+ else if (tinyDb.getInt("customFontId") == 2) {
+
+ myTypeface = Typeface.createFromAsset(getAssets(), "fonts/sourcecodeproregular.ttf");
+
+ }
+ else {
+
+ myTypeface = Typeface.createFromAsset(getAssets(), "fonts/roboto.ttf");
+
+ }
+
+ toolbarTitle.setTypeface(myTypeface);
setSupportActionBar(toolbar);
+ FragmentManager fm = getSupportFragmentManager();
+ Fragment fragmentById = fm.findFragmentById(R.id.fragment_container);
+ if (fragmentById instanceof SettingsFragment) {
+ toolbarTitle.setText(getResources().getString(R.string.pageTitleSettings));
+ }
+ else if (fragmentById instanceof MyRepositoriesFragment) {
+ toolbarTitle.setText(getResources().getString(R.string.pageTitleMyRepos));
+ }
+ else if (fragmentById instanceof StarredRepositoriesFragment) {
+ toolbarTitle.setText(getResources().getString(R.string.pageTitleStarredRepos));
+ }
+ else if (fragmentById instanceof OrganizationsFragment) {
+ toolbarTitle.setText(getResources().getString(R.string.pageTitleOrganizations));
+ }
+ else if (fragmentById instanceof ExploreRepositoriesFragment) {
+ toolbarTitle.setText(getResources().getString(R.string.pageTitleExplore));
+ }
+ else if (fragmentById instanceof ProfileFragment) {
+ toolbarTitle.setText(getResources().getString(R.string.pageTitleProfile));
+ }
+ else if (fragmentById instanceof AboutFragment) {
+ toolbarTitle.setText(getResources().getString(R.string.pageTitleAbout));
+ }
+
drawer = findViewById(R.id.drawer_layout);
NavigationView navigationView = findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
@@ -130,8 +185,6 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
tinyDb.putBoolean("noConnection", false);
}
- //tinyDb.putBoolean("noConnection", true);
-
String userEmailNav = tinyDb.getString("userEmail");
String userFullNameNav = tinyDb.getString("userFullname");
String userAvatarNav = tinyDb.getString("userAvatar");
@@ -139,11 +192,13 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
userEmail = hView.findViewById(R.id.userEmail);
if (!userEmailNav.equals("")) {
userEmail.setText(userEmailNav);
+ userEmail.setTypeface(myTypeface);
}
userFullName = hView.findViewById(R.id.userFullname);
if (!userFullNameNav.equals("")) {
userFullName.setText(userFullNameNav);
+ userFullName.setTypeface(myTypeface);
}
userAvatar = hView.findViewById(R.id.userAvatar);
@@ -176,31 +231,37 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
if(savedInstanceState == null) {
if(tinyDb.getInt("homeScreenId") == 0) {
+ toolbarTitle.setText(getResources().getString(R.string.pageTitleMyRepos));
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new MyRepositoriesFragment()).commit();
navigationView.setCheckedItem(R.id.nav_home);
}
else if(tinyDb.getInt("homeScreenId") == 1) {
+ toolbarTitle.setText(getResources().getString(R.string.pageTitleStarredRepos));
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new StarredRepositoriesFragment()).commit();
navigationView.setCheckedItem(R.id.nav_starred_repos);
}
else if(tinyDb.getInt("homeScreenId") == 2) {
+ toolbarTitle.setText(getResources().getString(R.string.pageTitleOrganizations));
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new OrganizationsFragment()).commit();
navigationView.setCheckedItem(R.id.nav_organizations);
}
else if(tinyDb.getInt("homeScreenId") == 3) {
+ toolbarTitle.setText(getResources().getString(R.string.pageTitleRepositories));
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new RepositoriesFragment()).commit();
navigationView.setCheckedItem(R.id.nav_repositories);
}
else if(tinyDb.getInt("homeScreenId") == 4) {
+ toolbarTitle.setText(getResources().getString(R.string.pageTitleProfile));
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new ProfileFragment()).commit();
navigationView.setCheckedItem(R.id.nav_profile);
}
else {
+ toolbarTitle.setText(getResources().getString(R.string.pageTitleMyRepos));
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new MyRepositoriesFragment()).commit();
navigationView.setCheckedItem(R.id.nav_home);
@@ -246,22 +307,28 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
switch (menuItem.getItemId()) {
case R.id.nav_home:
+ toolbarTitle.setText(getResources().getString(R.string.pageTitleMyRepos));
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new MyRepositoriesFragment()).commit();
break;
case R.id.nav_organizations:
+ toolbarTitle.setText(getResources().getString(R.string.pageTitleOrganizations));
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new OrganizationsFragment()).commit();
break;
case R.id.nav_profile:
+ toolbarTitle.setText(getResources().getString(R.string.pageTitleProfile));
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new ProfileFragment()).commit();
break;
case R.id.nav_repositories:
+ toolbarTitle.setText(getResources().getString(R.string.pageTitleRepositories));
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new RepositoriesFragment()).commit();
+
break;
case R.id.nav_settings:
+ toolbarTitle.setText(getResources().getString(R.string.pageTitleSettings));
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new SettingsFragment()).commit();
break;
@@ -270,6 +337,7 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
break;
case R.id.nav_about:
+ toolbarTitle.setText(getResources().getString(R.string.pageTitleAbout));
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new AboutFragment()).commit();
break;
@@ -277,10 +345,12 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
rateThisApp();
break;
case R.id.nav_starred_repos:
+ toolbarTitle.setText(getResources().getString(R.string.pageTitleStarredRepos));
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new StarredRepositoriesFragment()).commit();
break;
case R.id.nav_explore:
+ toolbarTitle.setText(getResources().getString(R.string.pageTitleExplore));
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new ExploreRepositoriesFragment()).commit();
break;
diff --git a/app/src/main/java/org/mian/gitnex/activities/OrgDetailActivity.java b/app/src/main/java/org/mian/gitnex/activities/OrgDetailActivity.java
index 749431b8..45ea48f6 100644
--- a/app/src/main/java/org/mian/gitnex/activities/OrgDetailActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/OrgDetailActivity.java
@@ -9,10 +9,14 @@ import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager;
import android.content.Intent;
+import android.graphics.Typeface;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
import org.mian.gitnex.R;
import org.mian.gitnex.fragments.MembersByOrgFragment;
import org.mian.gitnex.fragments.OrgBottomSheetFragment;
@@ -37,6 +41,8 @@ public class OrgDetailActivity extends AppCompatActivity implements OrgBottomShe
String orgName = tinyDb.getString("orgName");
Toolbar toolbar = findViewById(R.id.toolbar);
+ TextView toolbarTitle = toolbar.findViewById(R.id.toolbar_title);
+
setSupportActionBar(toolbar);
Objects.requireNonNull(getSupportActionBar()).setTitle(orgName);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
@@ -48,6 +54,44 @@ public class OrgDetailActivity extends AppCompatActivity implements OrgBottomShe
TabLayout tabLayout = findViewById(R.id.tabs);
+ Typeface myTypeface;
+ if(tinyDb.getInt("customFontId") == 0) {
+
+ myTypeface = Typeface.createFromAsset(Objects.requireNonNull(getApplicationContext()).getAssets(), "fonts/roboto.ttf");
+
+ }
+ else if (tinyDb.getInt("customFontId") == 1) {
+
+ myTypeface = Typeface.createFromAsset(Objects.requireNonNull(getApplicationContext()).getAssets(), "fonts/manroperegular.ttf");
+
+ }
+ else if (tinyDb.getInt("customFontId") == 2) {
+
+ myTypeface = Typeface.createFromAsset(Objects.requireNonNull(getApplicationContext()).getAssets(), "fonts/sourcecodeproregular.ttf");
+
+ }
+ else {
+
+ myTypeface = Typeface.createFromAsset(Objects.requireNonNull(getApplicationContext()).getAssets(), "fonts/roboto.ttf");
+
+ }
+
+ toolbarTitle.setTypeface(myTypeface);
+ toolbarTitle.setText(orgName);
+
+ ViewGroup vg = (ViewGroup) tabLayout.getChildAt(0);
+ int tabsCount = vg.getChildCount();
+ for (int j = 0; j < tabsCount; j++) {
+ ViewGroup vgTab = (ViewGroup) vg.getChildAt(j);
+ int tabChildCount = vgTab.getChildCount();
+ for (int i = 0; i < tabChildCount; i++) {
+ View tabViewChild = vgTab.getChildAt(i);
+ if (tabViewChild instanceof TextView) {
+ ((TextView) tabViewChild).setTypeface(myTypeface);
+ }
+ }
+ }
+
mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager));
diff --git a/app/src/main/java/org/mian/gitnex/activities/OrgTeamMembersActivity.java b/app/src/main/java/org/mian/gitnex/activities/OrgTeamMembersActivity.java
index ce9015e2..586b40c5 100644
--- a/app/src/main/java/org/mian/gitnex/activities/OrgTeamMembersActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/OrgTeamMembersActivity.java
@@ -1,7 +1,6 @@
package org.mian.gitnex.activities;
import androidx.annotation.Nullable;
-import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import android.os.Bundle;
@@ -16,12 +15,13 @@ import org.mian.gitnex.models.UserInfo;
import org.mian.gitnex.util.TinyDB;
import org.mian.gitnex.viewmodels.TeamMembersByOrgViewModel;
import java.util.List;
+import java.util.Objects;
/**
* Author M M Arif
*/
-public class OrgTeamMembersActivity extends AppCompatActivity {
+public class OrgTeamMembersActivity extends BaseActivity {
private TextView noDataMembers;
private View.OnClickListener onClickListener;
@@ -29,9 +29,13 @@ public class OrgTeamMembersActivity extends AppCompatActivity {
private GridView mGridView;
@Override
- protected void onCreate(Bundle savedInstanceState) {
+ protected int getLayoutResourceId(){
+ return R.layout.activity_org_team_members;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_org_team_members);
TinyDB tinyDb = new TinyDB(getApplicationContext());
final String instanceUrl = tinyDb.getString("instanceUrl");
@@ -46,7 +50,7 @@ public class OrgTeamMembersActivity extends AppCompatActivity {
initCloseListener();
closeActivity.setOnClickListener(onClickListener);
- if(getIntent().getStringExtra("teamTitle") != null && !getIntent().getStringExtra("teamTitle").equals("")) {
+ if(getIntent().getStringExtra("teamTitle") != null && !Objects.requireNonNull(getIntent().getStringExtra("teamTitle")).equals("")) {
toolbarTitle.setText(getIntent().getStringExtra("teamTitle"));
}
else {
@@ -54,7 +58,7 @@ public class OrgTeamMembersActivity extends AppCompatActivity {
}
String teamId;
- if(getIntent().getStringExtra("teamId") != null && !getIntent().getStringExtra("teamId").equals("")){
+ if(getIntent().getStringExtra("teamId") != null && !Objects.requireNonNull(getIntent().getStringExtra("teamId")).equals("")){
teamId = getIntent().getStringExtra("teamId");
}
else {
@@ -64,6 +68,7 @@ public class OrgTeamMembersActivity extends AppCompatActivity {
getIntent().getStringExtra("teamId");
//Log.i("teamId", getIntent().getStringExtra("teamId"));
+ assert teamId != null;
fetchDataAsync(instanceUrl, Authorization.returnAuthentication(getApplicationContext(), loginUid, instanceToken), Integer.valueOf(teamId));
}
diff --git a/app/src/main/java/org/mian/gitnex/activities/RepoDetailActivity.java b/app/src/main/java/org/mian/gitnex/activities/RepoDetailActivity.java
index 1bc60fd9..e0b1dcb6 100644
--- a/app/src/main/java/org/mian/gitnex/activities/RepoDetailActivity.java
+++ b/app/src/main/java/org/mian/gitnex/activities/RepoDetailActivity.java
@@ -3,7 +3,6 @@ package org.mian.gitnex.activities;
import com.google.android.material.tabs.TabLayout;
import com.google.gson.JsonElement;
import androidx.annotation.NonNull;
-import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
@@ -14,6 +13,7 @@ import retrofit2.Callback;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.res.ColorStateList;
+import android.graphics.Typeface;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
@@ -21,6 +21,7 @@ import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.TextView;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
@@ -47,14 +48,18 @@ import android.net.Uri;
* Author M M Arif
*/
-public class RepoDetailActivity extends AppCompatActivity implements RepoBottomSheetFragment.BottomSheetListener {
+public class RepoDetailActivity extends BaseActivity implements RepoBottomSheetFragment.BottomSheetListener {
private TextView textViewBadge;
@Override
- protected void onCreate(Bundle savedInstanceState) {
+ protected int getLayoutResourceId(){
+ return R.layout.activity_repo_detail;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_repo_detail);
TinyDB tinyDb = new TinyDB(getApplicationContext());
String repoFullName = tinyDb.getString("repoFullName");
@@ -70,6 +75,8 @@ public class RepoDetailActivity extends AppCompatActivity implements RepoBottomS
AppUtil.setAppLocale(getResources(), appLocale);
Toolbar toolbar = findViewById(R.id.toolbar);
+ TextView toolbarTitle = toolbar.findViewById(R.id.toolbar_title);
+
setSupportActionBar(toolbar);
Objects.requireNonNull(getSupportActionBar()).setTitle(repoName1);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
@@ -81,6 +88,44 @@ public class RepoDetailActivity extends AppCompatActivity implements RepoBottomS
TabLayout tabLayout = findViewById(R.id.tabs);
+ Typeface myTypeface;
+ if(tinyDb.getInt("customFontId") == 0) {
+
+ myTypeface = Typeface.createFromAsset(Objects.requireNonNull(getApplicationContext()).getAssets(), "fonts/roboto.ttf");
+
+ }
+ else if (tinyDb.getInt("customFontId") == 1) {
+
+ myTypeface = Typeface.createFromAsset(Objects.requireNonNull(getApplicationContext()).getAssets(), "fonts/manroperegular.ttf");
+
+ }
+ else if (tinyDb.getInt("customFontId") == 2) {
+
+ myTypeface = Typeface.createFromAsset(Objects.requireNonNull(getApplicationContext()).getAssets(), "fonts/sourcecodeproregular.ttf");
+
+ }
+ else {
+
+ myTypeface = Typeface.createFromAsset(Objects.requireNonNull(getApplicationContext()).getAssets(), "fonts/roboto.ttf");
+
+ }
+
+ toolbarTitle.setTypeface(myTypeface);
+ toolbarTitle.setText(repoName1);
+
+ ViewGroup vg = (ViewGroup) tabLayout.getChildAt(0);
+ int tabsCount = vg.getChildCount();
+ for (int j = 0; j < tabsCount; j++) {
+ ViewGroup vgTab = (ViewGroup) vg.getChildAt(j);
+ int tabChildCount = vgTab.getChildCount();
+ for (int i = 0; i < tabChildCount; i++) {
+ View tabViewChild = vgTab.getChildAt(i);
+ if (tabViewChild instanceof TextView) {
+ ((TextView) tabViewChild).setTypeface(myTypeface);
+ }
+ }
+ }
+
mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager));
diff --git a/app/src/main/java/org/mian/gitnex/adapters/RepoStargazersAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/RepoStargazersAdapter.java
index 6eea64dc..9dacfe95 100644
--- a/app/src/main/java/org/mian/gitnex/adapters/RepoStargazersAdapter.java
+++ b/app/src/main/java/org/mian/gitnex/adapters/RepoStargazersAdapter.java
@@ -2,6 +2,7 @@ package org.mian.gitnex.adapters;
import android.annotation.SuppressLint;
import android.content.Context;
+import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -12,6 +13,7 @@ import com.squareup.picasso.Picasso;
import org.mian.gitnex.R;
import org.mian.gitnex.helpers.RoundedTransformation;
import org.mian.gitnex.models.UserInfo;
+import org.mian.gitnex.util.TinyDB;
import java.util.List;
/**
@@ -79,11 +81,36 @@ public class RepoStargazersAdapter extends BaseAdapter {
UserInfo currentItem = stargazersList.get(position);
Picasso.get().load(currentItem.getAvatar()).transform(new RoundedTransformation(8, 0)).resize(180, 180).centerCrop().into(viewHolder.memberAvatar);
+ final TinyDB tinyDb = new TinyDB(mCtx);
+ Typeface myTypeface;
+ if(tinyDb.getInt("customFontId") == 0) {
+
+ myTypeface = Typeface.createFromAsset(mCtx.getAssets(), "fonts/roboto.ttf");
+
+ }
+ else if (tinyDb.getInt("customFontId") == 1) {
+
+ myTypeface = Typeface.createFromAsset(mCtx.getAssets(), "fonts/manroperegular.ttf");
+
+ }
+ else if (tinyDb.getInt("customFontId") == 2) {
+
+ myTypeface = Typeface.createFromAsset(mCtx.getAssets(), "fonts/sourcecodeproregular.ttf");
+
+ }
+ else {
+
+ myTypeface = Typeface.createFromAsset(mCtx.getAssets(), "fonts/roboto.ttf");
+
+ }
+
if(!currentItem.getFullname().equals("")) {
viewHolder.memberName.setText(currentItem.getFullname());
+ viewHolder.memberName.setTypeface(myTypeface);
}
else {
viewHolder.memberName.setText(currentItem.getLogin());
+ viewHolder.memberName.setTypeface(myTypeface);
}
}
diff --git a/app/src/main/java/org/mian/gitnex/adapters/RepoWatchersAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/RepoWatchersAdapter.java
index fb6909dc..478ef19e 100644
--- a/app/src/main/java/org/mian/gitnex/adapters/RepoWatchersAdapter.java
+++ b/app/src/main/java/org/mian/gitnex/adapters/RepoWatchersAdapter.java
@@ -2,6 +2,7 @@ package org.mian.gitnex.adapters;
import android.annotation.SuppressLint;
import android.content.Context;
+import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -12,6 +13,7 @@ import com.squareup.picasso.Picasso;
import org.mian.gitnex.R;
import org.mian.gitnex.helpers.RoundedTransformation;
import org.mian.gitnex.models.UserInfo;
+import org.mian.gitnex.util.TinyDB;
import java.util.List;
/**
@@ -79,11 +81,36 @@ public class RepoWatchersAdapter extends BaseAdapter {
UserInfo currentItem = watchersList.get(position);
Picasso.get().load(currentItem.getAvatar()).transform(new RoundedTransformation(8, 0)).resize(180, 180).centerCrop().into(viewHolder.memberAvatar);
+ final TinyDB tinyDb = new TinyDB(mCtx);
+ Typeface myTypeface;
+ if(tinyDb.getInt("customFontId") == 0) {
+
+ myTypeface = Typeface.createFromAsset(mCtx.getAssets(), "fonts/roboto.ttf");
+
+ }
+ else if (tinyDb.getInt("customFontId") == 1) {
+
+ myTypeface = Typeface.createFromAsset(mCtx.getAssets(), "fonts/manroperegular.ttf");
+
+ }
+ else if (tinyDb.getInt("customFontId") == 2) {
+
+ myTypeface = Typeface.createFromAsset(mCtx.getAssets(), "fonts/sourcecodeproregular.ttf");
+
+ }
+ else {
+
+ myTypeface = Typeface.createFromAsset(mCtx.getAssets(), "fonts/roboto.ttf");
+
+ }
+
if(!currentItem.getFullname().equals("")) {
viewHolder.memberName.setText(currentItem.getFullname());
+ viewHolder.memberName.setTypeface(myTypeface);
}
else {
viewHolder.memberName.setText(currentItem.getLogin());
+ viewHolder.memberName.setTypeface(myTypeface);
}
}
diff --git a/app/src/main/java/org/mian/gitnex/adapters/TeamMembersByOrgAdapter.java b/app/src/main/java/org/mian/gitnex/adapters/TeamMembersByOrgAdapter.java
index d773a39e..db9c68af 100644
--- a/app/src/main/java/org/mian/gitnex/adapters/TeamMembersByOrgAdapter.java
+++ b/app/src/main/java/org/mian/gitnex/adapters/TeamMembersByOrgAdapter.java
@@ -2,6 +2,7 @@ package org.mian.gitnex.adapters;
import android.annotation.SuppressLint;
import android.content.Context;
+import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -12,6 +13,7 @@ import com.squareup.picasso.Picasso;
import org.mian.gitnex.R;
import org.mian.gitnex.helpers.RoundedTransformation;
import org.mian.gitnex.models.UserInfo;
+import org.mian.gitnex.util.TinyDB;
import java.util.List;
/**
@@ -80,11 +82,36 @@ public class TeamMembersByOrgAdapter extends BaseAdapter {
UserInfo currentItem = teamMembersList.get(position);
Picasso.get().load(currentItem.getAvatar()).transform(new RoundedTransformation(8, 0)).resize(180, 180).centerCrop().into(viewHolder.memberAvatar);
+ final TinyDB tinyDb = new TinyDB(mCtx);
+ Typeface myTypeface;
+ if(tinyDb.getInt("customFontId") == 0) {
+
+ myTypeface = Typeface.createFromAsset(mCtx.getAssets(), "fonts/roboto.ttf");
+
+ }
+ else if (tinyDb.getInt("customFontId") == 1) {
+
+ myTypeface = Typeface.createFromAsset(mCtx.getAssets(), "fonts/manroperegular.ttf");
+
+ }
+ else if (tinyDb.getInt("customFontId") == 2) {
+
+ myTypeface = Typeface.createFromAsset(mCtx.getAssets(), "fonts/sourcecodeproregular.ttf");
+
+ }
+ else {
+
+ myTypeface = Typeface.createFromAsset(mCtx.getAssets(), "fonts/roboto.ttf");
+
+ }
+
if(!currentItem.getFullname().equals("")) {
viewHolder.memberName.setText(currentItem.getFullname());
+ viewHolder.memberName.setTypeface(myTypeface);
}
else {
viewHolder.memberName.setText(currentItem.getLogin());
+ viewHolder.memberName.setTypeface(myTypeface);
}
}
diff --git a/app/src/main/java/org/mian/gitnex/fragments/AboutFragment.java b/app/src/main/java/org/mian/gitnex/fragments/AboutFragment.java
index 408b983b..ccfdfd19 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/AboutFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/AboutFragment.java
@@ -27,7 +27,6 @@ public class AboutFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_about, container, false);
- ((MainActivity) Objects.requireNonNull(getActivity())).setActionBarTitle(getResources().getString(R.string.pageTitleAbout));
TinyDB tinyDb = new TinyDB(getContext());
diff --git a/app/src/main/java/org/mian/gitnex/fragments/ExploreRepositoriesFragment.java b/app/src/main/java/org/mian/gitnex/fragments/ExploreRepositoriesFragment.java
index 67faf79f..d2c8bf64 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/ExploreRepositoriesFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/ExploreRepositoriesFragment.java
@@ -17,7 +17,6 @@ import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import org.mian.gitnex.R;
-import org.mian.gitnex.activities.MainActivity;
import org.mian.gitnex.adapters.ExploreRepositoriesAdapter;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.helpers.Authorization;
@@ -77,7 +76,6 @@ public class ExploreRepositoriesFragment extends Fragment {
final View v = inflater.inflate(R.layout.fragment_explore_repo, container, false);
//setHasOptionsMenu(true);
- ((MainActivity) Objects.requireNonNull(getActivity())).setActionBarTitle(getResources().getString(R.string.pageTitleExplore));
TinyDB tinyDb = new TinyDB(getContext());
final String instanceUrl = tinyDb.getString("instanceUrl");
diff --git a/app/src/main/java/org/mian/gitnex/fragments/MyRepositoriesFragment.java b/app/src/main/java/org/mian/gitnex/fragments/MyRepositoriesFragment.java
index 7bbd34b1..b23e666a 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/MyRepositoriesFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/MyRepositoriesFragment.java
@@ -24,7 +24,6 @@ import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import org.mian.gitnex.R;
-import org.mian.gitnex.activities.MainActivity;
import org.mian.gitnex.activities.NewRepoActivity;
import org.mian.gitnex.adapters.MyReposListAdapter;
import org.mian.gitnex.helpers.Authorization;
@@ -83,7 +82,6 @@ public class MyRepositoriesFragment extends Fragment {
final View v = inflater.inflate(R.layout.fragment_my_repositories, container, false);
setHasOptionsMenu(true);
- ((MainActivity) Objects.requireNonNull(getActivity())).setActionBarTitle(getResources().getString(R.string.pageTitleMyRepos));
TinyDB tinyDb = new TinyDB(getContext());
final String instanceUrl = tinyDb.getString("instanceUrl");
diff --git a/app/src/main/java/org/mian/gitnex/fragments/OrganizationsFragment.java b/app/src/main/java/org/mian/gitnex/fragments/OrganizationsFragment.java
index e048be77..ad359046 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/OrganizationsFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/OrganizationsFragment.java
@@ -23,7 +23,6 @@ import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import org.mian.gitnex.R;
-import org.mian.gitnex.activities.MainActivity;
import org.mian.gitnex.activities.NewOrganizationActivity;
import org.mian.gitnex.adapters.OrganizationsListAdapter;
import org.mian.gitnex.helpers.Authorization;
@@ -50,7 +49,6 @@ public class OrganizationsFragment extends Fragment {
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- ((MainActivity) Objects.requireNonNull(getActivity())).setActionBarTitle(getResources().getString(R.string.pageTitleOrganizations));
final View v = inflater.inflate(R.layout.fragment_organizations, container, false);
setHasOptionsMenu(true);
diff --git a/app/src/main/java/org/mian/gitnex/fragments/ProfileFragment.java b/app/src/main/java/org/mian/gitnex/fragments/ProfileFragment.java
index d0782fc5..8f680ec2 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/ProfileFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/ProfileFragment.java
@@ -1,6 +1,7 @@
package org.mian.gitnex.fragments;
import android.content.Context;
+import android.graphics.Typeface;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -37,7 +38,6 @@ public class ProfileFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_profile, container, false);
- ((MainActivity) Objects.requireNonNull(getActivity())).setActionBarTitle(getResources().getString(R.string.pageTitleProfile));
setHasOptionsMenu(true);
TinyDB tinyDb = new TinyDB(getContext());
@@ -57,8 +57,43 @@ public class ProfileFragment extends Fragment {
ViewPager mViewPager = v.findViewById(R.id.container);
mViewPager.setAdapter(mSectionsPagerAdapter);
+ Typeface myTypeface;
+ if(tinyDb.getInt("customFontId") == 0) {
+
+ myTypeface = Typeface.createFromAsset(Objects.requireNonNull(getContext()).getAssets(), "fonts/roboto.ttf");
+
+ }
+ else if (tinyDb.getInt("customFontId") == 1) {
+
+ myTypeface = Typeface.createFromAsset(Objects.requireNonNull(getContext()).getAssets(), "fonts/manroperegular.ttf");
+
+ }
+ else if (tinyDb.getInt("customFontId") == 2) {
+
+ myTypeface = Typeface.createFromAsset(Objects.requireNonNull(getContext()).getAssets(), "fonts/sourcecodeproregular.ttf");
+
+ }
+ else {
+
+ myTypeface = Typeface.createFromAsset(Objects.requireNonNull(getContext()).getAssets(), "fonts/roboto.ttf");
+
+ }
+
TabLayout tabLayout = v.findViewById(R.id.tabs);
+ ViewGroup vg = (ViewGroup) tabLayout.getChildAt(0);
+ int tabsCount = vg.getChildCount();
+ for (int j = 0; j < tabsCount; j++) {
+ ViewGroup vgTab = (ViewGroup) vg.getChildAt(j);
+ int tabChildCount = vgTab.getChildCount();
+ for (int i = 0; i < tabChildCount; i++) {
+ View tabViewChild = vgTab.getChildAt(i);
+ if (tabViewChild instanceof TextView) {
+ ((TextView) tabViewChild).setTypeface(myTypeface);
+ }
+ }
+ }
+
mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager));
diff --git a/app/src/main/java/org/mian/gitnex/fragments/RepositoriesFragment.java b/app/src/main/java/org/mian/gitnex/fragments/RepositoriesFragment.java
index dd08884c..f6926fc6 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/RepositoriesFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/RepositoriesFragment.java
@@ -22,7 +22,6 @@ import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import org.mian.gitnex.R;
-import org.mian.gitnex.activities.MainActivity;
import org.mian.gitnex.activities.NewRepoActivity;
import org.mian.gitnex.adapters.ReposListAdapter;
import org.mian.gitnex.helpers.Authorization;
@@ -54,7 +53,6 @@ public class RepositoriesFragment extends Fragment {
final View v = inflater.inflate(R.layout.fragment_repositories, container, false);
setHasOptionsMenu(true);
- ((MainActivity) Objects.requireNonNull(getActivity())).setActionBarTitle(getResources().getString(R.string.pageTitleRepositories));
TinyDB tinyDb = new TinyDB(getContext());
final String instanceUrl = tinyDb.getString("instanceUrl");
diff --git a/app/src/main/java/org/mian/gitnex/fragments/SettingsFragment.java b/app/src/main/java/org/mian/gitnex/fragments/SettingsFragment.java
index 9f276981..3ea7e686 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/SettingsFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/SettingsFragment.java
@@ -13,7 +13,6 @@ import android.widget.LinearLayout;
import android.widget.Switch;
import android.widget.TextView;
import org.mian.gitnex.R;
-import org.mian.gitnex.activities.MainActivity;
import org.mian.gitnex.helpers.Toasty;
import org.mian.gitnex.util.TinyDB;
import java.util.Objects;
@@ -42,11 +41,13 @@ public class SettingsFragment extends Fragment {
private static String[] homeScreenList = {"My Repositories", "Starred Repositories", "Organizations", "Repositories", "Profile"};
private static int homeScreenSelectedChoice = 0;
+ private static String[] customFontList = {"Roboto", "Manrope", "Source Code Pro"};
+ private static int customFontSelectedChoice = 0;
+
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- ((MainActivity) Objects.requireNonNull(getActivity())).setActionBarTitle(getResources().getString(R.string.pageTitleSettings));
View v = inflater.inflate(R.layout.fragment_settings, container, false);
final TinyDB tinyDb = new TinyDB(getContext());
@@ -54,11 +55,13 @@ public class SettingsFragment extends Fragment {
final TextView tvDateTimeSelected = v.findViewById(R.id.tvDateTimeSelected); // setter for time
final TextView codeBlockSelected = v.findViewById(R.id.codeBlockSelected); // setter for code block
final TextView homeScreenSelected = v.findViewById(R.id.homeScreenSelected); // setter for home screen
+ final TextView customFontSelected = v.findViewById(R.id.customFontSelected); // setter for custom font
LinearLayout langFrame = v.findViewById(R.id.langFrame);
LinearLayout timeFrame = v.findViewById(R.id.timeFrame);
LinearLayout codeBlockFrame = v.findViewById(R.id.codeBlockFrame);
LinearLayout homeScreenFrame = v.findViewById(R.id.homeScreenFrame);
+ LinearLayout customFontFrame = v.findViewById(R.id.customFontFrame);
Switch issuesSwitch = v.findViewById(R.id.switchIssuesBadge);
TextView helpTranslate = v.findViewById(R.id.helpTranslate);
@@ -89,6 +92,10 @@ public class SettingsFragment extends Fragment {
homeScreenSelected.setText(tinyDb.getString("homeScreenStr"));
}
+ if(!tinyDb.getString("customFontStr").isEmpty()) {
+ customFontSelected.setText(tinyDb.getString("customFontStr"));
+ }
+
if(langSelectedChoice == 0) {
langSelectedChoice = tinyDb.getInt("langId");
}
@@ -105,6 +112,10 @@ public class SettingsFragment extends Fragment {
homeScreenSelectedChoice = tinyDb.getInt("homeScreenId");
}
+ if(customFontSelectedChoice == 0) {
+ customFontSelectedChoice = tinyDb.getInt("customFontId");
+ }
+
if(tinyDb.getBoolean("enableCounterIssueBadge")) {
issuesSwitch.setChecked(true);
}
@@ -124,6 +135,44 @@ public class SettingsFragment extends Fragment {
}
});
+ // custom font dialog
+ customFontFrame.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ AlertDialog.Builder cfBuilder = new AlertDialog.Builder(ctx, R.style.confirmDialog);
+
+ cfBuilder.setTitle(R.string.settingsCustomFontSelectorDialogTitle);
+ if(customFontSelectedChoice != -1) {
+ cfBuilder.setCancelable(true);
+ }
+ else {
+ cfBuilder.setCancelable(false);
+ }
+
+ cfBuilder.setSingleChoiceItems(customFontList, customFontSelectedChoice, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterfaceCustomFont, int i) {
+
+ customFontSelectedChoice = i;
+ customFontSelected.setText(customFontList[i]);
+ tinyDb.putString("customFontStr", customFontList[i]);
+ tinyDb.putInt("customFontId", i);
+
+ Objects.requireNonNull(getActivity()).recreate();
+ getActivity().overridePendingTransition(0, 0);
+ dialogInterfaceCustomFont.dismiss();
+ Toasty.info(getContext(), getResources().getString(R.string.settingsSave));
+
+ }
+ });
+
+ AlertDialog cfDialog = cfBuilder.create();
+ cfDialog.show();
+
+ }
+ });
+
// home screen dialog
homeScreenFrame.setOnClickListener(new View.OnClickListener() {
@Override
diff --git a/app/src/main/java/org/mian/gitnex/fragments/StarredRepositoriesFragment.java b/app/src/main/java/org/mian/gitnex/fragments/StarredRepositoriesFragment.java
index ab6a811e..20c793f5 100644
--- a/app/src/main/java/org/mian/gitnex/fragments/StarredRepositoriesFragment.java
+++ b/app/src/main/java/org/mian/gitnex/fragments/StarredRepositoriesFragment.java
@@ -24,7 +24,6 @@ import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import org.mian.gitnex.R;
-import org.mian.gitnex.activities.MainActivity;
import org.mian.gitnex.activities.NewRepoActivity;
import org.mian.gitnex.adapters.StarredReposListAdapter;
import org.mian.gitnex.helpers.Authorization;
@@ -79,7 +78,6 @@ public class StarredRepositoriesFragment extends Fragment {
View v = inflater.inflate(R.layout.fragment_starred_repositories, container, false);
boolean connToInternet = AppUtil.haveNetworkConnection(Objects.requireNonNull(getContext()));
setHasOptionsMenu(true);
- ((MainActivity) Objects.requireNonNull(getActivity())).setActionBarTitle(getResources().getString(R.string.pageTitleStarredRepos));
TinyDB tinyDb = new TinyDB(getContext());
final String instanceUrl = tinyDb.getString("instanceUrl");
diff --git a/app/src/main/java/org/mian/gitnex/helpers/FontsOverride.java b/app/src/main/java/org/mian/gitnex/helpers/FontsOverride.java
new file mode 100644
index 00000000..3eded525
--- /dev/null
+++ b/app/src/main/java/org/mian/gitnex/helpers/FontsOverride.java
@@ -0,0 +1,43 @@
+package org.mian.gitnex.helpers;
+
+import android.content.Context;
+import android.graphics.Typeface;
+import android.util.Log;
+import java.lang.reflect.Field;
+import java.util.Objects;
+
+/**
+ * Author M M Arif
+ */
+
+public class FontsOverride {
+
+ public static void setDefaultFont(Context context,
+ String staticTypefaceFieldName, String fontAssetName) {
+
+ final Typeface regular = Typeface.createFromAsset(context.getAssets(),
+ fontAssetName);
+ replaceFont(staticTypefaceFieldName, regular);
+
+ }
+
+ private static void replaceFont(String staticTypefaceFieldName,
+ final Typeface newTypeface) {
+
+ try {
+
+ final Field staticField = Typeface.class
+ .getDeclaredField(staticTypefaceFieldName);
+ staticField.setAccessible(true);
+ staticField.set(null, newTypeface);
+
+ }
+ catch (NoSuchFieldException | IllegalAccessException e) {
+
+ Log.e("error", Objects.requireNonNull(e.getMessage()));
+
+ }
+
+ }
+
+}
diff --git a/app/src/main/res/layout/activity_issue_detail.xml b/app/src/main/res/layout/activity_issue_detail.xml
index 84515c6b..3623d9d6 100644
--- a/app/src/main/res/layout/activity_issue_detail.xml
+++ b/app/src/main/res/layout/activity_issue_detail.xml
@@ -19,7 +19,17 @@
android:layout_weight="1"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"
- app:title="@string/app_name" />
+ app:title="@string/app_name" >
+
+
+
+
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 5d3b6522..f31c6bde 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -13,8 +13,7 @@
+ android:orientation="vertical">
+ android:elevation="4dp">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml
index 3d46f876..5b43477f 100644
--- a/app/src/main/res/values-v21/styles.xml
+++ b/app/src/main/res/values-v21/styles.xml
@@ -5,8 +5,8 @@
- @color/colorPrimary
- @color/colorPrimary
- @color/colorPrimary
- - @font/roboto
- @color/colorPrimary
+ - monospace
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 87dd2484..f4fccd1b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -244,7 +244,7 @@
Translation
Date & Time
- Settings saved.
+ Settings saved
Language
English
Appearance
@@ -497,6 +497,7 @@
-
private
public
+ Default
Translate GitNex with Crowdin
@@ -542,4 +543,8 @@
Pull Request was merged successfully
Pull Request is not available for merge
+ Font
+ Choose Font
+ Roboto
+
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index ae190611..b5ac6bbf 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -4,9 +4,9 @@
- @color/colorPrimary
- @color/colorPrimaryDark
- @color/colorAccent
- - @font/roboto
- @style/DrawerIcon
- #123456
+ - monospace