Skip to content

Commit

Permalink
v1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
whoishusni committed Apr 20, 2020
1 parent d109419 commit 7fc2743
Show file tree
Hide file tree
Showing 35 changed files with 643 additions and 120 deletions.
13 changes: 8 additions & 5 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,23 @@

<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.AboutActivity"/>
<activity android:name=".activity.DistrictDetail" />
<activity android:name=".activity.MainActivity">
<activity android:name=".activity.OpeningActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

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

</activity>
</application>

</manifest>
49 changes: 0 additions & 49 deletions app/src/main/java/id/husni/sultengcovid/Json/JSONKabupatenEx

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class AboutActivity : AppCompatActivity(), View.OnClickListener {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_about)
setSupportActionBar(aboutToolbar)
supportActionBar?.title = resources.getString(R.string.detail)
supportActionBar?.title = resources.getString(R.string.about)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
supportActionBar?.setHomeButtonEnabled(true)
tvAppVersion.text = BuildConfig.VERSION_NAME
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import id.husni.sultengcovid.model.District
import kotlinx.android.synthetic.main.activity_district_detail.*

@Suppress("NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS")
class DistrictDetail : AppCompatActivity() {
class DistrictDetailActivity : AppCompatActivity() {

companion object {
const val EXTRA_PARSING_DATA: String = "extra_parsing_data"
Expand Down
14 changes: 11 additions & 3 deletions app/src/main/java/id/husni/sultengcovid/activity/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,17 @@ class MainActivity : AppCompatActivity() {
}

override fun onOptionsItemSelected(item: MenuItem): Boolean {
if (item.itemId == R.id.menuAbout){
val intent : Intent = Intent(this, AboutActivity::class.java)
startActivity(intent)
when(item.itemId){
R.id.menuAbout ->{
val intentToAbout : Intent = Intent(this, AboutActivity::class.java)
startActivity(intentToAbout)
}
R.id.menuShare->{
val intentToShare : Intent = Intent(Intent.ACTION_SEND)
intentToShare.type = "text/plain"
intentToShare.putExtra(Intent.EXTRA_TEXT, getString(R.string.share_text))
startActivity(Intent.createChooser(intentToShare,"Share"))
}
}
return super.onOptionsItemSelected(item)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
* Copyright (c) 2020.
* Made with ❤ by Moh Husni Mubaraq
* Not For Commercial Purpose
*/

package id.husni.sultengcovid.activity

import android.content.Intent
import android.os.Bundle
import android.os.Handler
import android.view.WindowManager
import androidx.appcompat.app.AppCompatActivity
import id.husni.sultengcovid.R


class OpeningActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN)
setContentView(R.layout.activity_opening)
Handler().postDelayed({
val intentToMain : Intent = Intent(this,MainActivity::class.java)
startActivity(intentToMain)
finish()
},1300) //delay 1,3 detik
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@

import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
Expand All @@ -20,28 +19,22 @@

import java.util.ArrayList;

import id.husni.sultengcovid.activity.DistrictDetail;
import id.husni.sultengcovid.activity.DistrictDetailActivity;
import id.husni.sultengcovid.R;
import id.husni.sultengcovid.model.District;

public class DistrictAdapter extends RecyclerView.Adapter<DistrictAdapter.ViewHolder> {
private ArrayList<District> districts = new ArrayList<>();
private Context context;
private final ArrayList<District> districts = new ArrayList<>();
private final Context context;
public DistrictAdapter(Context context) {
this.context = context;
}

public ArrayList<District> getDistricts() {
return districts;
}

public void setDistricts(ArrayList<District> items) {
if (districts != null) {
if (districts.size() > 0) {
districts.clear();
}
districts.addAll(items);
if (districts.size() > 0) {
districts.clear();
}
districts.addAll(items);
notifyDataSetChanged();
}

Expand All @@ -58,13 +51,10 @@ public void onBindViewHolder(@NonNull DistrictAdapter.ViewHolder holder, int pos
holder.tvDistrictPositive.setText(String.valueOf(districts.get(position).getDistrictPositive()));
holder.tvDistrictNegative.setText(String.valueOf(districts.get(position).getDistrictNegative()));
holder.tvDistrictDeaths.setText(String.valueOf(districts.get(position).getDistrictDeaths()));
holder.btnDetail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intentDetail = new Intent(context, DistrictDetail.class);
intentDetail.putExtra(DistrictDetail.EXTRA_PARSING_DATA,districts.get(position));
context.startActivity(intentDetail);
}
holder.btnDetail.setOnClickListener(v -> {
Intent intentDetail = new Intent(context, DistrictDetailActivity.class);
intentDetail.putExtra(DistrictDetailActivity.EXTRA_PARSING_DATA,districts.get(position));
context.startActivity(intentDetail);
});
}

Expand All @@ -73,14 +63,14 @@ public int getItemCount() {
return districts.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {
public TextView tvDistrictName;
public TextView tvDistrictPositive;
public TextView tvDistrictNegative;
public TextView tvDistrictDeaths;
public Button btnDetail;
public static class ViewHolder extends RecyclerView.ViewHolder {
final TextView tvDistrictName;
final TextView tvDistrictPositive;
final TextView tvDistrictNegative;
final TextView tvDistrictDeaths;
final Button btnDetail;

public ViewHolder(@NonNull View itemView) {
ViewHolder(@NonNull View itemView) {
super(itemView);
tvDistrictName = itemView.findViewById(R.id.tvDistrictName);
tvDistrictPositive = itemView.findViewById(R.id.tvDistrictPositive);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
/*
* Copyright (c) 2020.
* Made with ❤ by Moh Husni Mubaraq
* Not For Commercial Purpose
*/

package id.husni.sultengcovid.adapter;

import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import java.util.ArrayList;

import id.husni.sultengcovid.R;
import id.husni.sultengcovid.model.Hospital;

public class HospitalAdapter extends RecyclerView.Adapter<HospitalAdapter.ViewHolder> {
private final Context context;
private final ArrayList<Hospital> hospitals = new ArrayList<>();

public HospitalAdapter(Context context) {
this.context = context;
}

public void setHospitals(ArrayList<Hospital> items) {
if (hospitals.size() > 0){
hospitals.clear();
}
hospitals.addAll(items);
notifyDataSetChanged();
}

@NonNull
@Override
public HospitalAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.hospital_item_holder, parent,false);
return new ViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull HospitalAdapter.ViewHolder holder, int position) {
holder.tvHospitalName.setText(hospitals.get(position).getHospitalName());
holder.tvHospitalAddress.setText(hospitals.get(position).getHospitalAddress());
holder.btnCall.setOnClickListener(v -> {
String telp = hospitals.get(position).getHospitalPhone();
Uri uriTelp = Uri.parse("tel:"+telp);
Intent intentToCall = new Intent(Intent.ACTION_DIAL);
intentToCall.setData(uriTelp);
context.startActivity(intentToCall);
});
holder.btnEmail.setOnClickListener(v -> {
String email = hospitals.get(position).getHospitalEmail();
Intent intentToEmail = new Intent(Intent.ACTION_SEND);
intentToEmail.setType("message/rfc822");
intentToEmail.putExtra(Intent.EXTRA_EMAIL, new String[]{email});
context.startActivity(Intent.createChooser(intentToEmail,"Via"));

});
}

@Override
public int getItemCount() {
return hospitals.size();
}

public static class ViewHolder extends RecyclerView.ViewHolder {
final TextView tvHospitalName;
final TextView tvHospitalAddress;
final Button btnCall;
final Button btnEmail;

ViewHolder(@NonNull View itemView) {
super(itemView);
tvHospitalName = itemView.findViewById(R.id.tvHospitalName);
tvHospitalAddress = itemView.findViewById(R.id.tvHospitalAddress);
btnCall = itemView.findViewById(R.id.btnHospitalCall);
btnEmail = itemView.findViewById(R.id.btnHospitalEmail);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

package id.husni.sultengcovid.fragment

import android.opengl.Visibility
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
Expand Down Expand Up @@ -44,7 +43,7 @@ class DistrictFragment : Fragment() {
viewModel.setDistrictData()
showShimmer(true)
viewModel.getDistrictData().observe(this, Observer<ArrayList<District>> {
adapter.districts = it
adapter.setDistricts(it)
showShimmer(false)
})

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,15 @@ import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager

import id.husni.sultengcovid.R
import id.husni.sultengcovid.adapter.HospitalAdapter
import id.husni.sultengcovid.model.Hospital
import id.husni.sultengcovid.viewmodel.HospitalViewModel
import kotlinx.android.synthetic.main.fragment_hospital.*

/**
* A simple [Fragment] subclass.
Expand All @@ -27,4 +34,31 @@ class HospitalFragment : Fragment() {
return inflater.inflate(R.layout.fragment_hospital, container, false)
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)

hospitalRecyclerView.layoutManager = LinearLayoutManager(context)
val adapter = HospitalAdapter(context)
hospitalRecyclerView.adapter = adapter

val viewModel : HospitalViewModel = ViewModelProvider(this, ViewModelProvider.NewInstanceFactory()).get(HospitalViewModel::class.java)
viewModel.setHospitalData()
showShimmer(true)
viewModel.getHospitalData().observe(this,Observer<ArrayList<Hospital>>{
adapter.setHospitals(it)
showShimmer(false)
})
}

private fun showShimmer(isShow: Boolean) {
if(isShow){
hospitalShimmer.showShimmer(true)
hospitalShimmer.visibility = View.VISIBLE
}
else{
hospitalShimmer.showShimmer(false)
hospitalShimmer.visibility = View.GONE
}
}

}
Loading

0 comments on commit 7fc2743

Please sign in to comment.