Skip to content
This repository has been archived by the owner on Aug 5, 2023. It is now read-only.

Commit

Permalink
WELLDONE
Browse files Browse the repository at this point in the history
  • Loading branch information
whoishusni committed Mar 18, 2020
1 parent 148697e commit 0cdc7d6
Show file tree
Hide file tree
Showing 27 changed files with 587 additions and 41 deletions.
19 changes: 12 additions & 7 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,20 @@

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:roundIcon="@drawable/icon"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".activity.SplashActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<receiver
android:name=".receiver.DailyReceiver"
Expand All @@ -22,12 +31,8 @@
<activity android:name=".activity.AboutActivity" />
<activity android:name=".activity.SettingActivity" />
<activity android:name=".activity.InfoActivity" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<activity android:name=".activity.MainActivity">

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

Expand Down
19 changes: 18 additions & 1 deletion app/src/main/java/id/husni/covninfo/activity/AboutActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,16 @@

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

import id.husni.covninfo.R;

public class AboutActivity extends AppCompatActivity {
public class AboutActivity extends AppCompatActivity implements View.OnClickListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
Expand All @@ -18,6 +22,9 @@ protected void onCreate(Bundle savedInstanceState) {
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}

Button btnGithub = findViewById(R.id.githubBtn);
btnGithub.setOnClickListener(this);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Expand All @@ -26,4 +33,14 @@ public boolean onOptionsItemSelected(MenuItem item) {
}
return super.onOptionsItemSelected(item);
}

@Override
public void onClick(View v) {
if (v.getId() == R.id.githubBtn) {
String url = "https://www.github.com/whoishusni";
Uri parseUrl = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, parseUrl);
startActivity(intent);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import android.widget.VideoView;

import id.husni.covninfo.R;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package id.husni.covninfo;
package id.husni.covninfo.activity;

import android.content.Intent;
import android.os.Bundle;
Expand All @@ -10,6 +10,7 @@

import com.google.android.material.bottomnavigation.BottomNavigationView;

import id.husni.covninfo.R;
import id.husni.covninfo.activity.AboutActivity;
import id.husni.covninfo.activity.InfoActivity;
import id.husni.covninfo.activity.SettingActivity;
Expand Down
31 changes: 31 additions & 0 deletions app/src/main/java/id/husni/covninfo/activity/SplashActivity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package id.husni.covninfo.activity;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.Window;
import android.view.WindowManager;

import id.husni.covninfo.R;

public class SplashActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_splash);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(SplashActivity.this, MainActivity.class);
startActivity(intent);
finish();
}
}, 1500); // 1,5 Detik Loading Splash Screen
}
}
51 changes: 51 additions & 0 deletions app/src/main/java/id/husni/covninfo/fragment/IdnFragment.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,33 @@
package id.husni.covninfo.fragment;


import android.graphics.Color;
import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.github.mikephil.charting.charts.PieChart;
import com.github.mikephil.charting.components.Description;
import com.github.mikephil.charting.components.Legend;
import com.github.mikephil.charting.data.PieData;
import com.github.mikephil.charting.data.PieDataSet;
import com.github.mikephil.charting.data.PieEntry;
import com.github.mikephil.charting.utils.ColorTemplate;

import java.util.ArrayList;
import java.util.List;

import id.husni.covninfo.R;
import id.husni.covninfo.model.IdnSummaryModel;
import id.husni.covninfo.viewmodel.IdnSummaryViewModel;

/**
* A simple {@link Fragment} subclass.
Expand All @@ -34,5 +50,40 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
PieChart pieChart = view.findViewById(R.id.idnSummaryPie);
IdnSummaryViewModel viewModel = new ViewModelProvider(this, new ViewModelProvider.NewInstanceFactory()).get(IdnSummaryViewModel.class);
viewModel.setSummaryIdnData();
viewModel.getSummaryIdnData().observe(this, new Observer<IdnSummaryModel>() {
@Override
public void onChanged(IdnSummaryModel idnSummaryModel) {
List<PieEntry> pieEntries = new ArrayList<>();
pieEntries.add(new PieEntry(idnSummaryModel.getIdnConfirmed().getValue(),getResources().getString(R.string.confirmed)));
pieEntries.add(new PieEntry(idnSummaryModel.getIdnRecovered().getValue(),getResources().getString(R.string.recovered)));
pieEntries.add(new PieEntry(idnSummaryModel.getIdnDeaths().getValue(), getResources().getString(R.string.deaths)));

PieDataSet pieDataSet = new PieDataSet(pieEntries, getResources().getString(R.string.from_corona));
pieDataSet.setColors(ColorTemplate.PASTEL_COLORS);
pieDataSet.setValueTextColor(Color.WHITE);
pieDataSet.setValueTextSize(20);

Legend legend = pieChart.getLegend();
legend.setTextColor(Color.WHITE);
legend.setTextSize(13);
legend.setForm(Legend.LegendForm.CIRCLE);

Description description = new Description();
description.setText(getResources().getString(R.string.last_update)+" : "+idnSummaryModel.getLastUpdate());
description.setTextColor(Color.WHITE);
description.setTextSize(14);

PieData pieData = new PieData(pieDataSet);
pieChart.setVisibility(View.VISIBLE);
pieChart.animateXY(2000,2000);
pieChart.setDescription(description);
pieChart.setHoleRadius(60);
pieChart.setHoleColor(getResources().getColor(R.color.colorPrimaryDark));
pieChart.setData(pieData);
}
});
}
}
137 changes: 137 additions & 0 deletions app/src/main/java/id/husni/covninfo/model/IdnSummaryModel.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
package id.husni.covninfo.model;

import com.google.gson.annotations.SerializedName;

public class IdnSummaryModel {
@SerializedName("lastUpdate")
private String lastUpdate;
@SerializedName("confirmed")
private IdnConfirmed idnConfirmed;
@SerializedName("recovered")
private IdnRecovered idnRecovered;
@SerializedName("deaths")
private IdnDeaths idnDeaths;

public IdnSummaryModel(String lastUpdate, IdnConfirmed idnConfirmed, IdnDeaths idnDeaths, IdnRecovered idnRecovered) {
this.lastUpdate = lastUpdate;
this.idnConfirmed = idnConfirmed;
this.idnDeaths = idnDeaths;
this.idnRecovered = idnRecovered;
}

public String getLastUpdate() {
return lastUpdate;
}

public void setLastUpdate(String lastUpdate) {
this.lastUpdate = lastUpdate;
}

public IdnConfirmed getIdnConfirmed() {
return idnConfirmed;
}

public void setIdnConfirmed(IdnConfirmed idnConfirmed) {
this.idnConfirmed = idnConfirmed;
}

public IdnDeaths getIdnDeaths() {
return idnDeaths;
}

public void setIdnDeaths(IdnDeaths idnDeaths) {
this.idnDeaths = idnDeaths;
}

public IdnRecovered getIdnRecovered() {
return idnRecovered;
}

public void setIdnRecovered(IdnRecovered idnRecovered) {
this.idnRecovered = idnRecovered;
}

public class IdnConfirmed {
@SerializedName("value")
private int value;
@SerializedName("detail")
private String detail;

public IdnConfirmed(int value, String detail) {
this.value = value;
this.detail = detail;
}

public int getValue() {
return value;
}

public void setValue(int value) {
this.value = value;
}

public String getDetail() {
return detail;
}

public void setDetail(String detail) {
this.detail = detail;
}
}

public class IdnDeaths {
@SerializedName("value")
private int value;
@SerializedName("detail")
private String detail;

public IdnDeaths(int value, String detail) {
this.value = value;
this.detail = detail;
}

public int getValue() {
return value;
}

public void setValue(int value) {
this.value = value;
}

public String getDetail() {
return detail;
}

public void setDetail(String detail) {
this.detail = detail;
}
}

public class IdnRecovered {
@SerializedName("value")
private int value;
@SerializedName("detail")
private String detail;

public IdnRecovered(int value, String detail) {
this.value = value;
this.detail = detail;
}

public int getValue() {
return value;
}

public void setValue(int value) {
this.value = value;
}

public String getDetail() {
return detail;
}

public void setDetail(String detail) {
this.detail = detail;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,10 @@
import android.widget.Toast;

import androidx.core.app.NotificationCompat;
import androidx.core.app.NotificationManagerCompat;

import java.util.Calendar;

import id.husni.covninfo.MainActivity;
import id.husni.covninfo.activity.MainActivity;
import id.husni.covninfo.R;

public class DailyReceiver extends BroadcastReceiver {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,9 @@

import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.Toast;

import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.SwitchPreference;
import androidx.preference.SwitchPreferenceCompat;

import id.husni.covninfo.R;
import id.husni.covninfo.receiver.DailyReceiver;
Expand Down
4 changes: 4 additions & 0 deletions app/src/main/java/id/husni/covninfo/service/ApiEndpoint.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import java.util.List;

import id.husni.covninfo.model.HistoryModel;
import id.husni.covninfo.model.IdnSummaryModel;
import id.husni.covninfo.model.WorldSummaryModel;
import id.husni.covninfo.utilities.AppUtils;
import retrofit2.Call;
Expand All @@ -15,4 +16,7 @@ public interface ApiEndpoint {

@GET(AppUtils.END_POINT_SUMMARY_WORLD)
Call<WorldSummaryModel> getSummaryWorld();

@GET(AppUtils.END_POINT_IDN)
Call<IdnSummaryModel> getSummaryIdn();
}
Loading

0 comments on commit 0cdc7d6

Please sign in to comment.