214 lines
7.7 KiB
Java
214 lines
7.7 KiB
Java
package com.pkm.parentapps;
|
|
|
|
import androidx.annotation.NonNull;
|
|
import androidx.appcompat.app.AlertDialog;
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
|
import android.app.Activity;
|
|
import android.content.Intent;
|
|
import android.content.SharedPreferences;
|
|
import android.graphics.Bitmap;
|
|
import android.graphics.BitmapFactory;
|
|
import android.graphics.Color;
|
|
import android.os.AsyncTask;
|
|
import android.os.Build;
|
|
import android.os.Bundle;
|
|
import android.os.CountDownTimer;
|
|
import android.util.Log;
|
|
import android.view.View;
|
|
import android.view.Window;
|
|
import android.view.WindowManager;
|
|
import android.widget.Button;
|
|
import android.widget.ImageView;
|
|
import android.widget.TextView;
|
|
import android.widget.Toast;
|
|
|
|
import com.android.volley.Request;
|
|
import com.android.volley.RequestQueue;
|
|
import com.android.volley.toolbox.StringRequest;
|
|
import com.android.volley.toolbox.Volley;
|
|
import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.YouTubePlayer;
|
|
import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.listeners.AbstractYouTubePlayerListener;
|
|
import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.views.YouTubePlayerView;
|
|
|
|
import org.json.JSONArray;
|
|
import org.json.JSONObject;
|
|
|
|
import java.io.InputStream;
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
public class KontenVideoActivity extends AppCompatActivity {
|
|
|
|
SharedPreferences sharedPreferences;
|
|
Intent intent;
|
|
Button btnLanjut;
|
|
private static final long START_TIME_IN_MILLIS = 100000;
|
|
TextView tvWaktu, tvDeskripsi, tvJudul, tvIsi;
|
|
YouTubePlayerView youTubePlayerView;
|
|
private CountDownTimer mCountDownTimer;
|
|
private boolean mTimerRunning;
|
|
private long mTimeLeftInMillis = START_TIME_IN_MILLIS;
|
|
ArrayList<String> judul = new ArrayList<>();
|
|
ArrayList<String> video = new ArrayList<>();
|
|
ArrayList<String> deskripsi = new ArrayList<>();
|
|
ArrayList<String> isi = new ArrayList<>();
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.activity_konten_video);
|
|
setStatusBar();
|
|
init();
|
|
getData();
|
|
startTimer();
|
|
}
|
|
|
|
private void init() {
|
|
tvWaktu = findViewById(R.id.tvWaktu);
|
|
tvDeskripsi = findViewById(R.id.tvDeskripsi);
|
|
tvJudul = findViewById(R.id.tvJudul);
|
|
tvIsi = findViewById(R.id.tvIsi);
|
|
youTubePlayerView = findViewById(R.id.youtube_player_view);
|
|
getLifecycle().addObserver(youTubePlayerView);
|
|
btnLanjut = findViewById(R.id.btnLanjut);
|
|
sharedPreferences = getSharedPreferences("UserInfo", MODE_PRIVATE);
|
|
intent = getIntent();
|
|
}
|
|
|
|
private void getData() {
|
|
String url = getResources().getString(R.string.api_server) + "/konten/" + intent.getStringExtra("idkonten");
|
|
String token = sharedPreferences.getString("token", "");
|
|
StringRequest request = new StringRequest(Request.Method.GET, url, response -> {
|
|
try {
|
|
JSONObject object = new JSONObject(response);
|
|
if (object.getBoolean("success")) {
|
|
JSONArray data = new JSONArray(object.getString("data"));
|
|
for (int i = 0; i < data.length(); i++) {
|
|
JSONObject item = data.getJSONObject(i);
|
|
judul.add(item.getString("judul"));
|
|
video.add(item.getString("youtube"));
|
|
deskripsi.add(item.getString("deskripsi"));
|
|
isi.add(item.getString("isi"));
|
|
}
|
|
load();
|
|
}
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}, error -> {
|
|
error.printStackTrace();
|
|
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
|
builder.setTitle("Pesan");
|
|
builder.setMessage("Terjadi Kesalahan");
|
|
builder.setPositiveButton("Ok", null);
|
|
builder.show();
|
|
}) {
|
|
@Override
|
|
public Map<String, String> getHeaders() {
|
|
Map<String, String> header = new HashMap<>();
|
|
header.put("Accept", "application/json");
|
|
header.put("Authorization", "Bearer " + token);
|
|
return header;
|
|
}
|
|
};
|
|
RequestQueue queue = Volley.newRequestQueue(this);
|
|
queue.add(request);
|
|
}
|
|
|
|
private int currentContentIndex = 0;
|
|
|
|
private void load() {
|
|
updateContent(currentContentIndex);
|
|
|
|
btnLanjut.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View view) {
|
|
currentContentIndex++;
|
|
if (currentContentIndex < judul.size()) {
|
|
updateContent(currentContentIndex);
|
|
}
|
|
|
|
if (currentContentIndex == judul.size() - 1) {
|
|
btnLanjut.setText("Selesai");
|
|
btnLanjut.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View view) {
|
|
finish();
|
|
}
|
|
});
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
private void updateContent(int index) {
|
|
tvJudul.setText(judul.get(index));
|
|
tvIsi.setText(isi.get(index));
|
|
tvDeskripsi.setText(deskripsi.get(index));
|
|
youTubePlayerView.addYouTubePlayerListener(new AbstractYouTubePlayerListener() {
|
|
@Override
|
|
public void onReady(@NonNull YouTubePlayer youTubePlayer) {
|
|
String videoId = video.get(index);
|
|
System.out.println("Video Id: " + video.get(index));
|
|
youTubePlayer.loadVideo(videoId, 0);
|
|
}
|
|
});
|
|
}
|
|
|
|
private void startTimer() {
|
|
mCountDownTimer = new CountDownTimer(mTimeLeftInMillis, 1000) {
|
|
@Override
|
|
public void onTick(long millisUntilFinished) { // 1 detik
|
|
mTimeLeftInMillis = millisUntilFinished;
|
|
updateCountDownText();
|
|
}
|
|
|
|
@Override
|
|
public void onFinish() { // selesai
|
|
mTimerRunning = false;
|
|
Toast.makeText(KontenVideoActivity.this, "Tugas Selesai", Toast.LENGTH_SHORT).show();
|
|
finish();
|
|
}
|
|
}.start();
|
|
|
|
mTimerRunning = true;
|
|
}
|
|
|
|
private void updateCountDownText() {
|
|
int minutes = (int) (mTimeLeftInMillis / 1000) / 60; // 1 menit
|
|
int seconds = (int) (mTimeLeftInMillis / 1000) % 60; // 1 detik
|
|
|
|
String timeLeftFormatted = String.format("%02d:%02d", minutes, seconds);
|
|
tvWaktu.setText(timeLeftFormatted);
|
|
}
|
|
|
|
@Override
|
|
public void onBackPressed() {
|
|
Toast.makeText(this, "Tugas Belum Selesai", Toast.LENGTH_SHORT).show();
|
|
}
|
|
|
|
private void setStatusBar() {
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
|
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
|
|
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
|
}
|
|
|
|
if (Build.VERSION.SDK_INT >= 21) {
|
|
setWindowFlag(this, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, false);
|
|
getWindow().setStatusBarColor(Color.TRANSPARENT);
|
|
}
|
|
}
|
|
|
|
public static void setWindowFlag(Activity activity, final int bits, boolean on) {
|
|
Window window = activity.getWindow();
|
|
WindowManager.LayoutParams layoutParams = window.getAttributes();
|
|
if (on) {
|
|
layoutParams.flags |= bits;
|
|
} else {
|
|
layoutParams.flags &= ~bits;
|
|
}
|
|
window.setAttributes(layoutParams);
|
|
}
|
|
} |