Оптимизация кода (Android Studio, Java, Codestyle)

90
20 февраля 2022, 23:50

Вот такой код у меня получился для воспроизведения радио через Exoplayer:

public class MainActivity extends AppCompatActivity {
    private SimpleExoPlayer player;
    private TextView textView;
    public String sArtist, sTrack;

    DefaultDataSourceFactory dataSourceFactory;
    MediaSource mediaSource;
    static String RADIO_URL = "http://s1.radioheart.ru:8001/radiogomelfm";
    boolean isEnabled;
    private Button StartStop;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //initialize player
        try {
        player = ExoPlayerFactory.newSimpleInstance(this);
        dataSourceFactory = new DefaultDataSourceFactory(this,Util.getUserAgent(this, "Gomel FM"));
        mediaSource = new ProgressiveMediaSource.Factory(dataSourceFactory).createMediaSource(Uri.parse(RADIO_URL));
        player.prepare(mediaSource);
        } catch (Exception e) {
            e.printStackTrace();
        }
        isEnabled = true;
    }
    //response from radiogomelfm.by
    private void getResponse(){
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(com.example.radiogomelfm.ApiInterface.JSONURL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        ApiInterface api = retrofit.create(ApiInterface.class);
        Call<List<MusicModel>> call = api.getMusic();
        call.enqueue(new Callback<List<MusicModel>>() {
            @Override
            public void onResponse(Call<List<MusicModel>> call, Response<List<MusicModel>> response) {
                if (response.isSuccessful()) {
                    List<MusicModel> musicModelArrayList = response.body();
                    if (musicModelArrayList !=null) {
                        showMusicList(musicModelArrayList);
                    } else {
                        Log.w("onResponse", "Returned empty response");
                    }
                } else {
                    Log.w("onResponse", "Not success response: " + response.message());
                }
            }
            @Override
            public void onFailure(Call<List<MusicModel>> call, Throwable t) {
                Log.e("Retrofit", "onFailure: ", t);
            }
        });
    }
    // parsing ArtistName & TrackName from radiogomelfm.by
    private void showMusicList(List<MusicModel> musicModelArrayList) {
        StringBuilder sb = new StringBuilder();
        sb.append(musicModelArrayList.get(0).getArtistName());
        sb.append(" - ");
        sb.append(musicModelArrayList.get(0).getTrackName());
        textView.setText(sb);
        sArtist = musicModelArrayList.get(0).getArtistName();
        sTrack = musicModelArrayList.get(0).getTrackName();
    }
    //logic button system start-stop mediaplaying
    public void OnPlay(View view) {
        if (isEnabled) {
            player.setPlayWhenReady(true);
            isEnabled = false;
            Button StartStop = (Button) findViewById(R.id.btnPlay);
            StartStop.setText("STOP");
            textView = findViewById(R.id.textView); //ArtistName & TrackName
            getResponse();     
            }
        else
            {
            player.setPlayWhenReady(false);
            isEnabled = true;
            Button StartStop = (Button) findViewById(R.id.btnPlay);
            StartStop.setText("PLAY");
        }
    }

    }

Вопрос: как вынести в отдельный класс все движения с кнопкой, парсингом и аудио и оставить в MainActivity только стандартные строчки:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
READ ALSO
не подключается шрифт в CSS

не подключается шрифт в CSS

Есть шрифтСкачан из интернета, открывается на локальном компьютере, все отлично пытаюсь его примерить к обычной странице на обычном хостинге

160
Как редактировать хедер и футер

Как редактировать хедер и футер

Подскажите, как редактировать номера телефонов в хедере и футере на этом сайтеЯ так понимаю, что модуль не установлен, а только вручную

123
Как вывести символ рубля в письме?

Как вывести символ рубля в письме?

Надо вывести символ рубля в письмеКак это правильно сделать? Насколько я понял сторонние шрифты в письма подключать нельзя

106
Как спарсить PDF в string?

Как спарсить PDF в string?

уже перебрал некоторые парсерыв основном они просто возвращают пустой результат

118